C语言 给字符串去空格
时间: 2023-12-24 16:04:22 浏览: 98
可以使用一个循环来遍历字符串中的每个字符,如果该字符是空格,则将其删除。以下是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
void remove_spaces(char* str) {
int len = strlen(str);
int i, j;
for (i = 0, j = 0; i < len; i++) {
if (str[i] != ' ') {
str[j++] = str[i];
}
}
str[j] = '\0';
}
int main() {
char str[100];
printf("Enter a string: ");
fgets(str, 100, stdin);
remove_spaces(str);
printf("After removing spaces: %s\n", str);
return 0;
}
```
在上面的代码中,`remove_spaces()` 函数接受一个字符串作为参数,并将其中的空格删除。主函数中使用 `fgets()` 函数从标准输入获取用户输入的字符串,并调用 `remove_spaces()` 函数来删除其中的空格。最后,输出修改后的字符串。
相关问题
C语言去除字符串前面空格
在C语言中,可以使用`strspn`函数结合指针操作来去除字符串前面的空格。`strspn`函数返回一个字符串中连续字符集(如空格)的长度。以下是一个简单的示例:
```c
#include <string.h>
// 函数定义
char* remove_spaces_from_start(char* str) {
size_t space_length = strspn(str, " ");
if (space_length > 0) { // 如果有空格
memmove(str, str + space_length, strlen(str) - space_length); // 移动非空格部分到开始
str[strlen(str) - space_length] = '\0'; // 更新字符串结束符
}
return str;
}
// 使用示例
int main() {
char str[] = " Hello, World! ";
printf("Original string: %s\n", str);
str = remove_spaces_from_start(str);
printf("After removing spaces: %s\n", str);
return 0;
}
```
这个函数会移除给定字符串的第一个空格及其后的所有空格,并保持原始字符串的其余部分。
C语言输入字符串有空格
在C语言中,当你需要从用户那里输入含有空格的字符串时,通常会使用`fgets()`函数配合数组来存储。`fgets()`函数可以读取一行文本,包括空格,并将其存储在一个字符数组中。
下面是一个简单的例子:
```c
#include <stdio.h>
#define MAX_LINE_LENGTH 80
int main() {
char input[MAX_LINE_LENGTH]; // 定义足够大的数组来存储字符串
printf("请输入一个包含空格的字符串: ");
fgets(input, sizeof(input), stdin); // 读入直到换行符('\n'),但不包括它
// 去掉字符串末尾的换行符,如果有的话
if (input[strlen(input) - 1] == '\n') {
input[strlen(input) - 1] = '\0'; // 将最后一个字符设为'\0',结束字符串
}
printf("你输入的字符串是: %s\n", input);
return 0;
}
```
在这个示例中,用户输入的带有空格的字符串会被存储在`input`数组中,然后程序显示所输入的内容。记得处理字符串结尾可能存在的换行符。
阅读全文