编写一个C语言程序,接收用户输入的字符串,使用指针遍历字符串, 删除其中的所有空格字符,并输出处理后的字符串
时间: 2024-11-09 08:18:28 浏览: 33
C语言实现输入一个字符串后打印出该字符串中字符的所有排列
在C语言中,你可以通过动态内存分配和指针操作来编写这样一个程序。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
void removeSpaces(char* str) {
if (str == NULL) return; // 避免对NULL指针进行操作
int len = strlen(str);
char *newStr = (char*)malloc(len + 1); // 动态分配新空间
newStr[0] = '\0'; // 初始化新字符串
for (int i = 0; i < len; i++) {
if (str[i] != ' ') { // 如果不是空格
newStr[strcspn(newStr, " ") + 1] = str[i]; // 将非空格字符复制到新位置
}
}
// 结束处理后,记得释放旧字符串占用的内存
free(str);
printf("处理后的字符串: %s\n", newStr); // 输出结果
}
int main() {
char input[100];
printf("请输入一个字符串: ");
fgets(input, sizeof(input), stdin); // 用户输入字符串并去掉换行符
input[strlen(input) - 1] = '\0'; // 去掉fgets添加的换行符
removeSpaces(input); // 调用函数处理字符串
return 0;
}
```
在这个程序中,`removeSpaces` 函数接收一个指向字符串的指针,通过 `strlen` 和 `strcspn` 函数检查每个字符是否为空格,如果不是,则将其添加到新的字符串 `newStr` 中。最后,在主函数 `main` 中获取用户输入并调用这个函数。
阅读全文