一个将多个空格转换成一个空格的程序

   
#include < stdio.h >
#include
< stdlib.h >
#include
< string .h >
#define MAX 100
char bak_str[MAX];

void Del_Blank( char * p)
{
int i = 0 ;
int j = 0 ;
int flag = 0 ;
while ( * (p + i) != ' \0 ' )
{

while ( * (p + i) == ' ' )
{
i
++ ;
flag
= 1 ;
}

if ( 1 == flag)
{
* (bak_str + j) = ' ' ;
j
++ ;
flag
= 0 ;
}
else
{
while ( ( * (p + i) != ' ' ) && ( * (p + i) != ' \0 ' ))
{
printf(
" start of the i:%d\n " ,i);
* (bak_str + j) = * (p + i);
j
++ ;
i
++ ;
}
}
}
bak_str[j]
= ' \0 ' ;
}

int main( void )
{
char strarr[MAX];
printf(
" please input string:\n " );
fgets(strarr,MAX,stdin);
Del_Blank(strarr);
printf(
" after deal whith the string:\n " );
puts(bak_str);
return 0 ;
}
这里说几个小的知识点:
1 尽量少用gets
2 fgets和gets在从标准输入中获取内容上是有区别的,gets不会获取输入字符串后敲入的换行符,而fgets会获取换行符放在数组中.
3 strlen在计算字符串的长度时不会将'\0'计算进去.

你可能感兴趣的:(转换)