C语言代码,要求去掉字符串的空格
时间: 2023-06-17 16:03:40 浏览: 89
可以使用指针来实现去除字符串空格的功能,具体代码如下:
```c
#include <stdio.h>
#include <string.h>
void remove_spaces(char *str) {
char *p = str;
while (*p != '\0') {
if (*p != ' ') {
*str++ = *p;
}
p++;
}
*str = '\0';
}
int main() {
char str[100];
printf("请输入一个字符串:");
fgets(str, sizeof(str), stdin);
remove_spaces(str);
printf("去除空格后的字符串为:%s\n", str);
return 0;
}
```
代码中的 `remove_spaces` 函数接受一个字符串参数,使用指针 `p` 遍历字符串,当遇到非空格字符时,将其拷贝到目标字符串中,最后在目标字符串结尾加上一个空字符来结束字符串。在 `main` 函数中,使用 `fgets` 函数从标准输入中获取一个字符串,然后调用 `remove_spaces` 函数去除其中的空格,并输出结果。
相关问题
C语言代码,利用字符数组,要求去掉字符串的空格
可以使用两个指针来实现去掉字符串的空格,一个指针指向原始字符串,另一个指针指向去掉空格后的字符串,遇到空格时原始指针跳过该空格,目标指针不变,否则将原始指针指向的字符复制到目标指针指向的位置,并将两个指针都向后移动一位。最后在目标字符串末尾加上'\0'即可。
示例代码如下:
```c
#include <stdio.h>
#include <string.h>
void remove_space(char *str) {
char *p = str, *q = str;
while (*p) {
if (*p == ' ') {
p++;
} else {
*q++ = *p++;
}
}
*q = '\0';
}
int main() {
char str[100];
printf("请输入字符串:");
fgets(str, 100, stdin);
str[strcspn(str, "\n")] = '\0'; // 去掉fgets读取的换行符
remove_space(str);
printf("去掉空格后的字符串为:%s\n", str);
return 0;
}
```
注意,这里使用了fgets函数来读取输入的字符串,因为gets函数存在安全性问题,不建议使用。同时,为了去掉fgets读取的换行符,我们使用了strcspn函数来找到换行符的位置并将其替换成'\0'。
c语言中,去除字符串中的空格
在 C 语言中,可以使用以下方法去除字符串中的空格:
1. 使用循环遍历字符串,逐个字符判断是否为空格。
2. 如果遇到空格,则后面的字符依次向前移动一个位置,覆盖空格。
3. 最后将字符串的长度减去空格的个数,将末尾多余的字符设置为字符串结束符号 '\0'。
下面是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
void removeSpaces(char* str) {
int len = strlen(str);
int count = 0;
for (int i = 0; str[i]; i++) {
if (str[i] != ' ') {
str[count++] = str[i];
}
}
str[count] = '\0';
}
int main() {
char str[] = "C 语言中,去除 字符串 中的 空格";
printf("原始字符串:%s\n", str);
removeSpaces(str);
printf("去除空格后的字符串:%s\n", str);
return 0;
}
```
运行结果:
```
原始字符串:C 语言中,去除 字符串 中的 空格
去除空格后的字符串:C语言中,去除字符串中的空格
```
通过以上方法,可以实现在 C 语言中去除字符串中的空格。