c语言,编写函数,要求去掉字符串的所有空格
时间: 2024-05-08 07:21:18 浏览: 12
可以使用指针来实现去掉字符串中所有空格的功能,代码如下:
```c
#include <stdio.h>
#include <string.h>
void removeSpaces(char *str)
{
char *p = str; // 定义指针p指向字符串的首地址
while (*str) // 当字符串未结束时
{
if (*str != ' ') // 如果当前字符不是空格,就把它复制到p所指向的位置
*p++ = *str;
str++; // 继续遍历字符串
}
*p = '\0'; // 在最后添加上字符串结束符
}
int main()
{
char str[100];
printf("请输入一个字符串:");
gets(str); // 读入字符串
removeSpaces(str); // 调用函数去掉字符串中的空格
printf("去掉空格后的字符串为:%s\n", str);
return 0;
}
```
在这个程序中,我们使用指针p来记录不含空格的字符串的下一个位置,然后遍历字符串,如果当前字符不是空格,就把它复制到p所指向的位置,然后p向后移动一位,继续遍历字符串。最后,在p所指向的位置添加上字符串结束符,表示新的字符串已经结束。
相关问题
用c语言,编写函数,要求去掉字符串的所有空格
下面是一个用 C 语言编写的函数,可以去掉字符串中的所有空格:
```c
#include <stdio.h>
#include <string.h>
void remove_spaces(char *str) {
int i, j;
for (i = 0; str[i] != '\0'; i++) {
if (str[i] != ' ') {
str[j++] = str[i];
}
}
str[j] = '\0';
}
int main() {
char str[100];
printf("Enter a string: ");
fgets(str, sizeof(str), stdin);
str[strcspn(str, "\n")] = '\0'; // remove the newline character
remove_spaces(str);
printf("String without spaces: %s\n", str);
return 0;
}
```
在上面的代码中,`remove_spaces` 函数接受一个指向字符串的指针,并在原始字符串上修改它,去掉所有的空格。在函数中,我们遍历字符串中的每个字符,如果当前字符不是空格,则将其复制到新字符串中。最后,我们在新字符串的末尾添加一个空字符,以指示字符串的结尾。
在 `main` 函数中,我们使用 `fgets` 函数从用户处获取一个字符串,并使用 `strcspn` 函数删除输入字符串中的换行符。然后,我们调用 `remove_spaces` 函数,并打印出没有空格的字符串。
C语言代码,要求去掉字符串的空格
可以使用指针来实现去除字符串空格的功能,具体代码如下:
```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` 函数去除其中的空格,并输出结果。