如何去掉字符串里不必要的空格,包括前面和后面的。
要求写一个函数,输出一个新的字符串和字符个数(不包括null),去掉原字符串里不必要的空格,包括前面和后面的,单词和单词之间只能有一个空格。比如:原字符串为char str[ ] = " This is a test. "
输出后为:
'This is a test.' contains 15 characters.
下面是小弟写的,但是运行不了,请大侠支招,谢谢。
#include<stdio.h>
#include<string.h>
#include <ctype.h>
int main()
{
char str[100];
int i;
printf("Enter some text:\n");
scanf("%s", str);
i = compress(str);
printf ("'%s' contains %d characters.\n", str, i);
}
int compress ( char text[100] )
{
int x, i, j=0, d=0;
char blank[100];
if (isupper(text[i])||islower(text[i]))//确定首个字母的位置
{
for (i<100; i++)
{
if (!(text[i] == ' ' && text[i+1] == ' '))
{
blank[j] = text[i];
j++;
}
}
}
blank[j] = '\0';
strcpy (text, blank);
x=strlen(text);
return x-1;//请问如何返回新的字符串?
}