C语言,接收一个包含空格的字符串,并输出去除所有空格后的字符串(字符串长度不超过100)
时间: 2024-11-16 17:20:04 浏览: 2
C语言中去除字符串中的所有空格并保留最多100个字符的操作,可以使用`strtok()`函数配合循环来完成。`strtok()`函数用于分割字符串,我们可以先将整个字符串分解成单个非空格的单词,然后逐个存储到另一个缓冲区。
下面是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LENGTH 100
void removeSpaces(char* str) {
char result[MAX_LENGTH] = "";
char token[100]; // 存储分隔出来的词
char* currentToken = strtok(str, " "); // 分割字符串
while (currentToken != NULL && strlen(result) < MAX_LENGTH) {
strncpy(result, currentToken, MAX_LENGTH - 1); // 注意不要超过最大长度
result[MAX_LENGTH - 1] = '\0'; // 添加结束符
currentToken = strtok(NULL, " "); // 继续分割直到无更多单词
}
printf("去除空格后的字符串: %s\n", result);
}
int main() {
char input[256];
printf("请输入一个包含空格的字符串(不超过255个字符): ");
fgets(input, sizeof(input), stdin); // 防止读入换行符
input[strcspn(input, "\n")] = '\0'; // 去除fgets带来的换行符
removeSpaces(input);
return 0;
}
```
阅读全文