将一个字符串(串长不超过50)中连续的空格符只保留一个。例如,若字符串为“I am a student.",处理后为"I am a student."
示例:
#include <stdio.h>
#include <string.h>
void remove_extra_spaces(char *str) {
int i, j;
int len = strlen(str);
// i为读指针,j为写指针
for (i = 0, j = 0; i < len; i++) {
// 如果当前字符不是空格,直接写入
if (str[i] != ' ') {
str[j++] = str[i];
}
// 如果当前字符是空格
else {
// 如果前一个字符不是空格,写入一个空格
if (i > 0 && str[i - 1] != ' ') {
str[j++] = ' ';
}
}
}
// 在最后写入字符串结束符
str[j] = '\0';
}
int main() {
char str[51];
printf("请输入字符串:");
fgets(str, 51, stdin);
remove_extra_spaces(str);
printf("处理后的字符串:%s\n", str);
return 0;
}
如果答案对您有所帮助,望采纳。