C语言字符串操作:系统主界面设计与流程图分析
C语言字符串操作:系统主界面设计与流程图分析
项目概述
本项目使用C语言设计一个系统主界面,用于对输入的字符串进行各种操作。用户可以通过菜单选择不同的功能,包括:
- 原样输出字符串
- 统计字符串中字符的个数
- 查找某个字符在字符串中第一次出现的位置
- 在字符串的指定位置插入一个字符
- 删除字符串中的某个字符
- 将字符串中从指定位置开始的某个字符替换成另一个字符
- 将字符串中的某个字符替换成指定字符
代码实现
以下是使用C语言设计系统主界面的代码:
#include <stdio.h>
#include <string.h>
int main() {
int choice;
char str[100];
printf('请输入一个字符串:');
scanf('%s', str);
while (1) {
printf('
1. 原样输出
');
printf('2. 统计字符个数
');
printf('3. 查找字符第一次出现的位置
');
printf('4. 在指定位置插入一个字符
');
printf('5. 删除字符串中的某个字符
');
printf('6. 指定位置字符替换
');
printf('7. 将指定字符替换成另一个字符
');
printf('8. 退出
');
printf('请选择功能:');
scanf('%d', &choice);
switch (choice) {
case 1:
printf('原样输出:%s
', str);
break;
case 2:
printf('字符个数:%d
', strlen(str));
break;
case 3:
printf('请输入要查找的字符:');
char c;
scanf(' %c', &c);
char* p = strchr(str, c);
if (p == NULL) {
printf('未找到该字符
');
} else {
printf('该字符第一次出现的位置:%d
', p - str);
}
break;
case 4:
printf('请输入要插入的字符和位置(用空格隔开):');
char c2;
int pos;
scanf(' %c %d', &c2, &pos);
if (pos < 0 || pos > strlen(str)) {
printf('位置不合法
');
} else {
for (int i = strlen(str); i >= pos; i--) {
str[i+1] = str[i];
}
str[pos] = c2;
printf('插入后的字符串:%s
', str);
}
break;
case 5:
printf('请输入要删除的字符:');
char c3;
scanf(' %c', &c3);
char* p2 = str;
while (*p2 != '�') {
if (*p2 == c3) {
for (int i = p2 - str; i < strlen(str); i++) {
str[i] = str[i+1];
}
} else {
p2++;
}
}
printf('删除后的字符串:%s
', str);
break;
case 6:
printf('请输入要替换的字符、替换的字符和位置(用空格隔开):');
char c4, c5;
int pos2;
scanf(' %c %c %d', &c4, &c5, &pos2);
if (pos2 < 0 || pos2 > strlen(str)) {
printf('位置不合法
');
} else {
for (int i = pos2; i < strlen(str); i++) {
if (str[i] == c4) {
str[i] = c5;
}
}
printf('替换后的字符串:%s
', str);
}
break;
case 7:
printf('请输入要替换的字符和替换成的字符:');
char c6, c7;
scanf(' %c %c', &c6, &c7);
char* p3 = str;
while (*p3 != '�') {
if (*p3 == c6) {
*p3 = c7;
}
p3++;
}
printf('替换后的字符串:%s
', str);
break;
case 8:
printf('退出程序
');
return 0;
default:
printf('输入有误,请重新选择
');
break;
}
}
return 0;
}
流程图与问题分析
功能三:查找某个字符在字符串中第一次出现的位置
流程图

可能出现的问题和解决方法
- 输入的字符串中没有要查找的字符: 此时
strchr()函数返回NULL,需要在程序中判断并输出未找到该字符的信息。 - 输入的字符串中有多个要查找的字符: 此时
strchr()函数只能找到第一个字符的位置,需要在程序中循环查找并输出所有字符的位置。
功能五:删除字符串中的某个字符
流程图

可能出现的问题和解决方法
- 输入的字符串中没有要删除的字符: 此时程序不会进行任何操作,可以在输出中提示无需删除。
- 输入的字符串中有多个要删除的字符: 此时需要在程序中循环查找并删除所有字符,可以使用指针遍历字符串并进行删除操作。同时,由于删除操作会改变字符串的长度,需要注意循环的条件和删除操作的实现方式。
原文地址: https://www.cveoy.top/t/topic/gx0D 著作权归作者所有。请勿转载和采集!