3、【编写程序】编写函数,要求去掉字符串的所有空格,用C语言编写
时间: 2024-05-08 22:20:57 浏览: 77
以下是一个简单的示例代码来去掉字符串中的所有空格:
```c
#include <stdio.h>
#include <string.h>
void remove_spaces(char *str) {
int i, j;
for (i = 0; str[i] != '\0'; i++) {
while (str[i] == ' ') {
for (j = i; str[j] != '\0'; j++) {
str[j] = str[j+1];
}
str[j] = '\0';
}
}
}
int main() {
char str[100];
printf("Enter a string: ");
fgets(str, 100, stdin);
remove_spaces(str);
printf("String without spaces: %s\n", str);
return 0;
}
```
在此示例中,我们定义了一个函数 `remove_spaces`,它接受一个指向字符串的指针。函数使用两个循环来遍历字符串,第一个循环遍历整个字符串,第二个循环在找到空格后向左移动所有字符,以删除空格。最后,我们在 `main` 函数中调用 `remove_spaces` 函数来去掉字符串中的所有空格,并输出结果。
相关问题
用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 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所指向的位置添加上字符串结束符,表示新的字符串已经结束。
阅读全文