字符串(串长不超过60),删除字符串中所有的空格符c语言
时间: 2023-06-22 19:30:57 浏览: 60
可以使用C语言中的字符数组(字符串)和循环结构,逐个遍历字符并判断是否为空格符,如果不是则将其存储到另一个字符数组中,最后再将其输出即可。以下是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[61]; // 字符串数组
char newStr[61]; // 存储去除空格符后的字符串数组
int i, j = 0;
printf("请输入字符串(不超过60个字符):");
fgets(str, sizeof(str), stdin); // 读取字符串
for (i = 0; i < strlen(str); i++) {
if (str[i] != ' ') { // 如果字符不是空格符
newStr[j] = str[i]; // 存储到新的字符串中
j++;
}
}
newStr[j] = '\0'; // 字符串末尾加上结束符
printf("去除空格符后的字符串为:%s\n", newStr);
return 0;
}
```
注意,为了避免字符数组越界,定义字符数组时要比字符串长度多1个字符,用来存储字符串结束符'\0'。
相关问题
c语言:输入一个字符串(串长不超过60),删除字符串中所有的空格符。
可以使用指针来遍历字符串,并在遍历过程中删除空格符。
具体的实现代码如下:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[61]; // 字符串数组,最大长度为60
char *p = str; // 定义指向字符串的指针
printf("输入一个字符串:");
fgets(str, 61, stdin); // 从标准输入读入字符串,最大长度为60
// 遍历字符串
while (*p != '\0')
{
if (*p != ' ') // 当前字符不是空格符
{
putchar(*p); // 输出当前字符
}
p++; // 指针指向下一个字符
}
return 0;
}
```
在上述代码中,使用 `fgets()` 函数从标准输入读入字符串,遇到换行符时停止读入。然后使用指针 `p` 遍历字符串,当当前字符不是空格符时输出,并将指针 `p` 指向下一个字符,直到遍历完整个字符串。
c语言编写程序,功能是删除输入字符串中的所有空格,字符串长度不超过30
下面是一个简单的 C 语言程序,可以删除输入字符串中的所有空格:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[31];
int i, j;
printf("请输入字符串:");
scanf("%[^\n]", str); // 读入一行字符串,不包括换行符
for (i = 0, j = 0; i < strlen(str); i++) {
if (str[i] != ' ') {
str[j] = str[i];
j++;
}
}
str[j] = '\0'; // 末尾添加空字符,表示字符串结束
printf("删除空格后的字符串为:%s\n", str);
return 0;
}
```
上述程序中,输入字符串存储在字符数组 str 中,使用 scanf 函数读入一行字符串(注意格式化字符串中使用 %[^\n],表示读入除了换行符外的所有字符)。然后使用循环遍历字符串,如果遇到空格,则跳过该字符;如果不是空格,则将该字符复制到新的位置(用 j 记录新字符串的下标),最后在新字符串末尾添加空字符。
需要注意的是,由于字符数组 str 的长度为 31,因此输入字符串长度不能超过 30,否则会发生缓冲区溢出。