C语言中去除字符串中空格
时间: 2023-12-11 17:03:16 浏览: 101
可以使用C语言中的字符串处理函数`strcpy`和`isspace`来去除字符串中的空格。以下是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
void remove_spaces(char *str) {
char *temp = str;
while (*str) {
if (!isspace((unsigned char)*str))
*temp++ = *str;
str++;
}
*temp = '\0';
}
int main() {
char str[100];
printf("Enter a string: ");
fgets(str, 100, stdin);
remove_spaces(str);
printf("String after removing spaces: %s\n", str);
return 0;
}
```
在上面的代码中,`remove_spaces`函数接收一个指向字符串的指针,并将字符串中的空格移除。然后,我们在`main`函数中读取用户输入的字符串,调用`remove_spaces`函数,并将移除空格后的字符串打印输出。
相关问题
c语言实现去除字符串中空格的简单实例
下面是用C语言实现去除字符串中空格的简单示例代码:
```c
#include <stdio.h>
void removeSpaces(char* str) {
int i = 0, j = 0;
while (str[i]) {
if (str[i] != ' ') {
str[j++] = str[i];
}
i++;
}
str[j] = '\0';
}
int main() {
char str[100];
printf("请输入一个字符串:");
gets(str);
removeSpaces(str);
printf("去除空格后的字符串是:%s\n", str);
return 0;
}
```
在上面的代码中,我们使用了一个自定义的函数`removeSpaces`来去除字符串中的空格。它采用了两个指针`i`和`j`,初始时都指向字符串的首字符。通过遍历字符串,当遇到非空格字符时,将其复制到新的位置(指针`j`所指向的位置),同时`j`指针向后移动一位。最后,加上字符串的结束符号`\0`,即可将空格删除。
在`main`函数中,我们先定义了一个字符数组`str`,并通过`gets`函数从用户处获取输入的字符串。然后调用`removeSpaces`函数处理该字符串,并最终打印去除空格后的结果。
需要注意的是,这个简单示例中没有对数组的长度进行限制,所以在实际使用中应该添加对用户输入的字符串长度的判断,以避免溢出的问题。
用C语言实现去掉字符串所有空格的函数
在C语言中,你可以创建一个函数来删除字符串中的所有空格。下面是一个简单的实现示例,使用`strspn`和`memmove`函数:
```c
#include <stdio.h>
#include <string.h>
void removeSpaces(char* str) {
size_t len = strlen(str);
char nonSpaceChars[len+1]; // 存储无空格字符的新字符串
// 找到连续的非空格字符的位置
for (size_t i = 0; i <= len; ++i) {
if (str[i] != ' ') {
nonSpaceChars[i] = str[i];
} else {
while (i < len && str[i] == ' ') { // 遇到空格就跳过
i++;
}
}
}
// 将新字符串截断,防止越界
nonSpaceChars[len] = '\0';
// 把处理后的字符串复制回原位置
memmove(str, nonSpaceChars, len + 1);
}
int main() {
char testStr[] = "Hello World! This is a test.";
printf("Original string: %s\n", testStr);
removeSpaces(testStr);
printf("String without spaces: %s\n", testStr);
return 0;
}
```
这个函数会将输入字符串`str`中所有的空格替换为`'\0'`,实际上删除了它们。注意,`memmove`用于安全地移动数据,因为它可以处理源和目标重叠的情况。
阅读全文