精华内容
下载资源
问答
  • 删除字符串空格C语言

    2011-08-13 19:30:04
    自己写的一个 删除 字符串空格的小程序 对 初学C语言的 朋友 很有帮助
  • 今天上午遇到了个面试模拟题,不是很难,经常能看到这样相同或相似的题,但是突然想不到很好的办法,晚上整理下思路,写了下来 #include<stdio.h> #include<string.h>...//删除字符串首部和尾...

    今天上午遇到了个面试模拟题,不是很难,经常能看到这样相同或相似的题,但是突然想不到很好的办法,晚上整理下思路,写了下来

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    
    //删除字符串首部和尾部的空格,中间的有超过一个的空格的话就换成一个空格
    //例子:“  hsf g   dfgg ”,"hsf g dfgg"
    //"   ",""
    //思路:先把首部和尾部的空格找到,在循环中就不循环它们(前两个while循环做的事),
    
    char* Trim(char* lpstr)
    {
        int len=strlen(lpstr);
        char *s=(char *)malloc(sizeof(char)*len+1);
        strcpy(s,lpstr);
        int start=0,end=len-1,i=0,j=0,num=0;//num代表空格出现的次数,j和i分别为数组s的两个下表索引,j从0开始,最后得到删除空格的新的数组,i从start开始,将i对应的字符加入到j里面,i始终大于等于j
        while(s[start]==' ')
        {    
            start++;
        }
        while(s[end]==' ')
        {
            end--;
        }
        for(i=start;i<=end;i++)
        {
            if(s[i]!=' ')
            {
                if(num>0) //代表在这个字符之前出现过空格,所以要增加一个空格,处理完之后num就清0
                {
                    s[j++]=' ';
                    num=0;
                }
                s[j]=s[i];
                j++;
            }
            if(s[i]==' ')
            {
                num++;
                //flag=1;
            }
        }
        s[j]='\0';//最后j位置上加上'\0',代表数组在这里结束
        return s;
    }
    
    int main()
    {
        char *ssss="  fgj fds f  ds ";
        printf("%s",Trim(ssss));
    
    }

    望大家批评指正

    转载于:https://my.oschina.net/a20092173/blog/502493

    展开全文
  • despacer:能够快速从字符串中删除空格C语言
  • “abc*abc”(*代表空格) 直接上代码: #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<string.h> void Delete(char arr[], int k) { int i = 0...

    比如:“*****abcabc” ——> “abc*abc”(*代表空格)
    直接上代码:

    #define	_CRT_SECURE_NO_WARNINGS
    
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    
    void Delete(char arr[], int k)
    {
    	int i = 0;
    	int j = 0;
    	int count = 0;
    	int m = 0;
    	for(j =0 ;j < k - count; j++)
    	{
    		if (arr[j] == ' '&&(arr[j+1]==' '||arr[j-i]==' '))
    		{
    			for (i = j; i < k-1-count; i++)
    			{
    				arr[i] = arr[i + 1];
    			}
    			arr[k - count] = NULL;
    			count++;
    			j--;
    		}
    		else if (arr[j] == ' '&&j == 0)
    		{
    			for (i = j; i < k - 1 - count; i++)
    			{
    				arr[i] = arr[i + 1];
    			}
    			arr[k - count] = NULL;
    			count++;
    			j--;
    		}
    	}
    	arr[j] = NULL;
    	printf("%s\n", arr);
    }
    
    int main()
    {
    	char arr[] = "    wang    rui   sc";
    	Delete(arr,strlen(arr));
    	system("pause");
    	return 0;
    }
    
    展开全文
  • 删除空格

    2017-08-24 16:44:12
    就是在给定的数组里面替换或者删除空格,我这里是删除空格 C语言代码:#include #include #include <stdbool.h>//method 1 bool replace_space(char *str);// method 2 bool replace_space2(char *dest, char

    面试题里面的经典题目,替换空格。
    就是在给定的数组里面替换或者删除空格,我这里是删除空格
    C语言代码:

    #include <stdio.h>
    #include <string.h>
    #include <stdbool.h>
    
    //method 1
    bool replace_space(char *str);
    
    // method 2
    bool replace_space2(char *dest, char *src, int dest_size);
    
    int main(void)
    {
        char str[64] = "we     are      happy.";
        printf("%s\nlength=%d\n", str, strlen(str));
        replace_space(str);
        printf("%s\n", str);
        return 0;
    }
    
    bool replace_space(char *str)
    {
        bool ret = false;
        int count = 0;
        char *space = NULL;
        char *sub_head = NULL;
        char *prev = NULL;
    
        if (NULL == str){
            printf("string is null!!\n");
            goto EXIT;
        }
    
        if (0 == strlen(str)){
            printf("string is empty.\n");
            goto NORMAL_EXIT;
        }
    
        // search space character from string tail.
        space = str;
        sub_head = str;
        space += (strlen(str) - 1);
        sub_head += strlen(str);
        while(sub_head != str){
            if (*space == ' ') 
                strcpy(space, sub_head);
    
            if (space != str)
                --space;
    
            prev = sub_head - 1;
            if (*prev != ' ')
                --sub_head;
        }
    
    NORMAL_EXIT:
        ret = true;
    EXIT:
        return ret;
    }
    展开全文
  • #include/*删除前导空格的函数*/void headspace(char* s){ int i,j; for(i=0;s[i]==32;i++); /*循环结束后的i值为前导空格的个数*/ if(i==0) return; for(j=i;s[j]!=/0;j++) s[j-i]=s[j]; s[j-i]=/0;}/*删除...


    #include<stdio.h>


    /*删除前导空格的函数*/
    void headspace(char* s)
    {
     int i,j;
     for(i=0;s[i]==32;i++); /*循环结束后的i值为前导空格的个数*/
     if(i==0) return;
     for(j=i;s[j]!='/0';j++) s[j-i]=s[j];
     s[j-i]='/0';

    }


    /*删除后继空格的函数*/
    void tailspace(char* s)
    {
     int i=0,k;
     while(s[i]!='/0')i++;
     for(k=i-1;s[k]==32;k--);
     s[k+1]='/0';
    }


    /*main函数可以用来测试函数的正确性*/
    main()
    {
     char s[20];
     printf("/n");
     gets(s);     /*输入一个字符串*/
     puts(s);    /*输出字符串*/

     printf("/n");
     printf("%d/n",strlen(s));   /*输出原字符串的长度(不包含结束标志)*/ 
     headspace(s);
     puts(s);                 
     printf("/n");
     printf("%d/n",strlen(s));   /*输出删除前导空格后的字符串的长度*/
     tailspace(s);
     puts(s);
     printf("/n");
     printf("%d/n",strlen(s));  /*输出删除后继空格后的字符串的长度*/

    }

     

    展开全文
  • 喜欢的同学记得点赞、转发、收藏哦~后续C语言经典100例将会以pdf和代码的形式发放到公众号欢迎关注:计算广告生态 即时查收1 题目函数:fun()功能:删除字符串中所有的空格举例:主函数中输入“fds afadsf adf d ...
  • C语言删除字符所有空格

    千次阅读 2019-09-30 10:27:31
    1.代码 #include <stdio.h> //求字符串长度 int Strlen(const char *str) { int length = 0; while('\0' != str[length]) { ...//删除字符串所有空格 void DelSpaceFromString(char *str) ...
  • 喜欢的同学记得点赞、转发、收藏哦~后续C语言经典100例将会以pdf和代码的形式发放到公众号欢迎关注:计算广告生态 即时查收1 题目函数:fun() 功能:删除字符串中所有的空格 举例: 主函数中输入“fds afadsf adf d...
  • for(i=0,j=0;i(pSend,capacity);... 以上方法无法删除空格。 for(i=0,j=0;i(pSend,capacity);++i) { if(*(pSend+i)!=' ') *(pSend + j++)=*(pSend+i); } 以上方法可以删除空格。 请问为什么?
  • #去掉空格一行换行 for i in range(0,len(st)): for line in st: if '\n’in line: index= st.index(line) del st[index] if ’ 'in line: index= st.index(line) del st[index] if '\t’in line: index= ...
  • char *strtrim(char *s) { char *p = s, *q = s, *o = s; printf(">>>p=[%s] q=[%s] o=[%s] s=[%s]\n", p, q, o, s); ... while(*s == ' ') s++;...我还是不太理解strtrim函数中o这个值的作用,开始o是指向...
  • C语言删除句子中多余空格

    千次阅读 2018-04-18 15:28:39
    #include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;#define M 100int main(){ int i,j=0,k; char a[M],b[M]; scanf("%[^\n]",a); for(i=0;a[i]!='\0';...=' ') { ...
  • //是空格,但是这是文章内部中的第一个空格(正确要求的),所以不删除。 notSpace= 0 ; //标记第一个空格已经复制 *p2++=*p1++; //复制一个空格 } else { p1++; //多余的空格直接跳过 } } *p2= '\0...
  • 删除空格也是面试常见问题,刚看到题一般写了个复杂度较高的,后来改进下复杂度降低,和大家分享下: #include /** * 删除字符串空格 */ void delSpace(char *str) { char *p = str; char *t =p; while ...
  • C语言删除字符数组中的空格

    千次阅读 2020-02-12 15:11:04
    一个删除字符数组中空格的功能,见代码 #include <stdio.h> #include <string.h> #include <memory.h> void clearStringAllspace(char *s) { char *temp = s; while (*temp) { if(*temp != ' '...
  • /* **删除字符串内的空格 */ #include<...//遍历元字符串,删除空格 char *func(char *str) { int j = 0; for(int i=0;i<strlen(str);i++) { if(str[i] != ' ') { str[j++] = str[i]; } } .
  • c语言删除多余的空格

    千次阅读 2016-05-08 18:13:36
    #include #include int main() {  void delSpace(char sentence[]);  char sentence[1000];  gets(sentence);  delSpace(sentence);  puts(sentence);  return 0; }   ...void
  • 目的:删除多余的空格 功能:进一步熟悉对于字符串的操作 */ #include<stdio.h> int main() { char string[81]; int i,count=1; char c; gets(string); for(i=0;(c=string[i])!='\0';i+
  • C语言——删除字符串中的空格

    万次阅读 2019-03-22 17:44:14
    题目:编写一个函数,函数功能是删除字符串中的所有空格。 代码: #include<stdio.h> #include<ctype.h> void fun(char *str) { char *str_c=str; int i,j=0; for(i=0;str[i]!='\0';i++) { if...
  • c语言中字符串空格删除

    万次阅读 2017-12-07 13:17:22
    整体思路:将后续字符往前移动。 源代码: char s1[] ="NI h a o zho ng qiu"; int n=strlen(s1); printf("strlen(s1)=%d\n",n); ...//判断当前字符是否是空格 if(isspace(s1[i+spac
  • 初学c语言,想实现这么个功能:如果字符串有一个地方由一个或多个连续空格组成,就把它们改成单个空格字符。比如abc d输出成abc d。 #include <stdio.h> #include <string.h> void deblank(char ...
  • c语言删除行末尾空格及制表符

    千次阅读 2014-09-02 16:57:00
    k&r中的问题,原题还有删除完全空格的行这个要求,没想到好办法。一个办法是上面的main函数中再加个循环,检测完全空格的行;另一个办法是在my_getline中添加一个全局的状态位,若换行符之前出现了非空格,则标记之...
  • 新手C语言删除数组中的空格笔记

    千次阅读 2019-01-29 23:42:12
    一、源代码展示 #include #include void fun(char *a) { int i=0, j=0;...删除数组中的空格的关键在于跳过空格找字符,将数组重新排列,最后要在重新排列好的数组后面加上字符串结束符’\0’。
  • voiddeblank(charstring[]) { inti=0; intj=0; while(string[j]!='\0'){ if(string[j]!=''||string[j+1]!=''){ string[i]=string[j]; i++;...

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 253
精华内容 101
关键字:

删除空格c语言

c语言 订阅