编写一个c语言程序,删除一个字符串中重复出现的字符如“abcab”得到“abc”不可以用函数
时间: 2025-01-01 10:39:01 浏览: 6
当你想要编写一个C语言程序来删除字符串中的重复字符,而又不允许使用函数时,可以采用循环结构和一个临时数组来实现这个任务。以下是一个简单的示例,我们将遍历输入字符串,只将未出现过的字符存储到另一个数组中,并更新原字符串的长度。
```c
#include <stdio.h>
#include <string.h>
// 定义字符串长度的最大值
#define MAX_LENGTH 100
int main() {
char input[MAX_LENGTH]; // 输入字符串
char output[MAX_LENGTH]; // 存储去重后的字符串
int input_len = 0;
printf("请输入一个字符串: ");
fgets(input, MAX_LENGTH, stdin); // 从标准输入读取字符串,包括换行符
// 删除字符串末尾的换行符
if (input[strlen(input) - 1] == '\n') {
input[strlen(input) - 1] = '\0';
}
// 初始化去重后字符串
strcpy(output, ""); // 空字符串作为初始状态
for (int i = 0; i < strlen(input); ++i) {
int found = 0; // 标记字符是否已存在输出字符串中
// 遍历输出字符串查找重复
for (int j = 0; j < strlen(output); ++j) {
if (input[i] == output[j]) {
found = 1;
break;
}
}
// 如果字符不存在输出中,则添加到结果并更新输出长度
if (!found) {
output[strlen(output)] = input[i];
output[++strlen(output)] = '\0'; // 终止符
++input_len;
}
}
// 打印去重后的字符串
printf("去重后的字符串是: %s\n", output);
return 0;
}
```
阅读全文