设计系统主界面要求选择菜单对应数学进入相应功能并使用C语言定义一个字符串数组使其具有如下功能:1 输入一个字符串原样输出;2 对输入字符串统计字符个数;3 查找某个字符在字符串中第一次出现的位置;4 在字符串的指定位置插入一个字符; 5 删除字符串中的某个字符; 6 指定字符串从某位置开始由某个字符替换;7 将字符串中的某个字符替换成指定字符如把所有的字符a替换成c。
以下是一个简单的设计:
主界面:
| 数学系统 | |------------------------| | 1. 输入字符串 | | 2. 统计字符个数 | | 3. 查找字符位置 | | 4. 插入字符 | | 5. 删除字符 | | 6. 替换字符 | | 7. 字符替换 | | 8. 退出系统 |
C语言代码:
#include <stdio.h> #include <string.h>
#define MAX_LEN 100
char str[MAX_LEN];
void input_string() { printf("请输入一个字符串:"); scanf("%s", str); printf("输入的字符串为:%s\n", str); }
void count_chars() { int len = strlen(str); printf("字符串长度为:%d\n", len); }
void find_char() { char c; printf("请输入要查找的字符:"); scanf(" %c", &c); char *ptr = strchr(str, c); if (ptr) { int pos = ptr - str; printf("字符 %c 第一次出现的位置是:%d\n", c, pos); } else { printf("字符 %c 没有出现在字符串中。\n", c); } }
void insert_char() { char c; int pos; printf("请输入要插入的字符:"); scanf(" %c", &c); printf("请输入要插入的位置:"); scanf("%d", &pos); int len = strlen(str); if (pos < 0 || pos > len) { printf("错误的插入位置。\n"); } else { for (int i = len; i >= pos; i--) { str[i+1] = str[i]; } str[pos] = c; printf("插入后的字符串为:%s\n", str); } }
void delete_char() { char c; printf("请输入要删除的字符:"); scanf(" %c", &c); char *ptr; while ((ptr = strchr(str, c))) { int pos = ptr - str; int len = strlen(str); for (int i = pos; i < len; i++) { str[i] = str[i+1]; } str[len-1] = '\0'; } printf("删除后的字符串为:%s\n", str); }
void replace_char() { char old_c, new_c; int pos; printf("请输入要替换的字符:"); scanf(" %c", &old_c); printf("请输入要替换成的字符:"); scanf(" %c", &new_c); printf("请输入要替换的位置:"); scanf("%d", &pos); int len = strlen(str); if (pos < 0 || pos >= len) { printf("错误的替换位置。\n"); } else { for (int i = pos; i < len; i++) { if (str[i] == old_c) { str[i] = new_c; } } printf("替换后的字符串为:%s\n", str); } }
void char_replace() { char old_c, new_c; printf("请输入要替换的字符:"); scanf(" %c", &old_c); printf("请输入要替换成的字符:"); scanf(" %c", &new_c); int len = strlen(str); for (int i = 0; i < len; i++) { if (str[i] == old_c) { str[i] = new_c; } } printf("替换后的字符串为:%s\n", str); }
int main() { int choice; do { printf("--------------------------\n"); printf("| 数学系统 |\n"); printf("|------------------------|\n"); printf("| 1. 输入字符串 |\n"); printf("| 2. 统计字符个数 |\n"); printf("| 3. 查找字符位置 |\n"); printf("| 4. 插入字符 |\n"); printf("| 5. 删除字符 |\n"); printf("| 6. 替换字符 |\n"); printf("| 7. 字符替换 |\n"); printf("| 8. 退出系统 |\n"); printf("--------------------------\n"); printf("请选择:"); scanf("%d", &choice); switch (choice) { case 1: input_string(); break; case 2: count_chars(); break; case 3: find_char(); break; case 4: insert_char(); break; case 5: delete_char(); break; case 6: replace_char(); break; case 7: char_replace(); break; case 8: printf("谢谢使用!\n"); break; default: printf("无效的选择。\n"); break; } } while (choice != 8); return 0;
原文地址: https://www.cveoy.top/t/topic/eeCE 著作权归作者所有。请勿转载和采集!