编写一个c语言程序,读入一段字符串,去除空格,不使用指针,使用循环
时间: 2024-09-17 07:00:51 浏览: 41
在C语言中,你可以通过循环结构结合数组或字符数组来编写一个简单的程序,用于读取输入字符串并去除其中的空格。这里是一个示例程序:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LENGTH 100 // 设定字符串最大长度
int main() {
char str[MAX_LENGTH]; // 定义一个字符数组存储字符串
printf("请输入一个字符串: ");
fgets(str, MAX_LENGTH, stdin); // 读取用户输入,fgets会自动去掉换行符
int i = 0, j = 0; // 初始化两个索引变量
while (str[i] != '\0') { // 遍历字符串,直到遇到结束符
if (str[i] != ' ') { // 如果当前字符不是空格
str[j++] = str[i]; // 将非空格字符复制到新位置
}
i++; // 移动原索引
}
str[j] = '\0'; // 结束字符串,添加结束符
printf("处理后的字符串: %s\n", str);
return 0;
}
相关问题
用c语言编写一个程序,读入一段字符串,去除空格和数字字符,输入以回车结束。最后输入的回车不输出,输出结束无换行符
你可以使用C语言编写一个简单的程序来实现这个需求。下面是一个示例程序,它会从用户那里读取输入,删除其中的空格和数字字符,并且在输出时不包含多余的换行:
```c
#include <stdio.h>
#include <ctype.h> // 包含处理字符类型的库函数
void remove_spaces_and_digits(char* str) {
int i = 0;
while (*str != '\0') { // 遍历字符串直到结尾
if (!isspace(*str) && !isdigit(*str)) { // 检查是否为空格或数字字符
str[i] = *str; // 如果不是,将其复制到新位置
i++; // 移动指针到下一个位置
}
str++; // 总是移动到下一个字符
}
str[i - 1] = '\0'; // 结束字符串,去掉最后一个未修改的字符
}
int main() {
char input[100]; // 假设最多读取99个字符
fgets(input, sizeof(input), stdin); // 从标准输入读入字符串,包括回车符
// 移除回车符
input[strcspn(input, "\n")] = '\0';
remove_spaces_and_digits(input);
printf("%s", input); // 输出处理后的字符串
return 0;
}
```
当你运行这个程序并输入一些含有空格和数字的文本后,按Enter键,程序将直接在屏幕上打印出不含空格和数字的结果。
请写出C语言代码并且用二维字符数组方法编程实现从键盘任意输入10个字符串,将这10个字符串按字典顺序排序后打印输出,字符串最大长度80。 **输入提示信息格式: 无 **输入数据格式要求: 要求读入的字符串可以包含有空格 **输出数据格式要求: 一行输出一个字符串 注:不能使用指针、结构体、共用体、文件、goto、枚举类型进行编程。
#include<stdio.h>
#include<string.h>#define MAX_LEN 81
#define MAX_STR 10int main(){
int i,j;
char str[MAX_STR][MAX_LEN];
char temp[MAX_LEN]; printf("请输入10个字符串:\n");
for(i=0; i<MAX_STR; i++){
scanf("%s",str[i]);
} for(i=0; i<MAX_STR; i++){
for(j=i+1; j<MAX_STR; j++){
if(strcmp(str[i],str[j])>0){
strcpy(temp,str[i]);
strcpy(str[i],str[j]);
strcpy(str[j],temp);
}
}
} printf("排序后结果如下:\n");
for(i=0; i<MAX_STR; i++){
printf("%s\n",str[i]);
} return 0;
}
阅读全文