C语言程序设计删除空格
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言程序设计删除空格相关的知识,希望对你有一定的参考价值。
写程序删除一个字符串中的所有空格。只能用一个数组。
遍历字符串,遇到空格,即进行删除。
可以使用第二个字符数组来保存结果,对空格不复制;也可以不使用第二个字符数组,而是采用后续字符覆盖空格字符的方式,达到删除效果。
以效率更高的第二种方法为例,代码如下:
void del_space(char * s)char *p = s;
do
if(*s != \' \')*p++= *s;
while(*s++);
参考技术A #include<stdlib.h>
void main()
char str[100];
int index=0,move=-1;
printf("请输入字符串:");
gets(str); while(str[index]!='\0') if(str[index]!=' ' && move!=-1)
str[move] = str[index];
move++;
else if(str[index]==' ' && move==-1)
move = index;
index++;
if(move!=-1)
str[move]='\0' ;
printf("删除空格后的结果是:\n%s",str); getch();
《C程序设计语言》练习
练习1-9:编写一个将输入复制到输出的程序,并将其中连续的多个空格用一个空格代替。
思路是用一个游标state标记,如果遇到一个空格就将他变成0,直到变成非空格,将state变成1,先判断条件,如果state是0则不输出。
代码:
while(c=getchar() != EOF){ if(c == ‘ ‘ && state == 0) ; else if(c == ‘ ‘){ putchar(c); state=0; } else{ putchar(c); state=1; } }
1.14:编写一个程序,打印输入中各个字符出现频度的直方图。
水平方向:
#include<stdio.h> main(){ char c; int i,a[128]; for(i=0;i<128;i++) a[i] = 0; while(scanf("%c",&c) != EOF){ a[c]++; } for(i=0;i<128;i++){ printf("%-4d",i); while(a[i] != 0){ printf("-"); a[i]--; } printf("\n"); } }
练习1-16:修改打印最长文本行的程序的主程序main,使之可以打印任意长度的输入行的长度,并尽可能多地打印文本。
以上是关于C语言程序设计删除空格的主要内容,如果未能解决你的问题,请参考以下文章
C语言试题四十一之请编写一个函数,用来删除字符串中的所有空格。