C语言字符串操作:实现7种常用功能的系统菜单
#include <stdio.h> #include <string.h>
int main() { char str[100]; int choice; printf('请选择要进行的操作:\n'); printf('(1) 输入一个字符串,原样输出\n'); printf('(2) 对输入字符串统计字符个数\n'); printf('(3) 查找某个字符在字符串中第一次出现的位置\n'); printf('(4) 在字符串的指定位置插入一个字符\n'); printf('(5) 删除字符串中的某个字符\n'); printf('(6) 指定字符串从某位置开始由某个字符替换\n'); printf('(7) 将字符串中的某个字符替换成指定字符\n'); scanf('%d', &choice); printf('请输入字符串:\n'); scanf('%s', str); switch (choice) { case 1: printf('输出结果:%s\n', str); break; case 2: printf('字符个数:%d\n', strlen(str)); break; case 3: { char c; printf('请输入要查找的字符:\n'); scanf(' %c', &c); char *p = strchr(str, c); if (p == NULL) { printf('没有找到该字符\n'); } else { printf('该字符第一次出现的位置为:%ld\n', p - str); } break; } case 4: { char c; int pos; printf('请输入要插入的字符:\n'); scanf(' %c', &c); printf('请输入要插入的位置(从0开始):\n'); 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); } break; } case 5: { char c; printf('请输入要删除的字符:\n'); scanf(' %c', &c); int len = strlen(str); int i, j; for (i = 0, j = 0; i < len; i++) { if (str[i] != c) { str[j++] = str[i]; } } str[j] = '\0'; printf('删除后的字符串为:%s\n', str); break; } case 6: { char c1, c2; int pos; printf('请输入要替换的字符:\n'); scanf(' %c', &c1); printf('请输入替换后的字符:\n'); scanf(' %c', &c2); printf('请输入要替换的起始位置(从0开始):\n'); 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] == c1) { str[i] = c2; } } printf('替换后的字符串为:%s\n', str); } break; } case 7: { char c1, c2; printf('请输入要替换的字符:\n'); scanf(' %c', &c1); printf('请输入替换后的字符:\n'); scanf(' %c', &c2); int len = strlen(str); for (int i = 0; i < len; i++) { if (str[i] == c1) { str[i] = c2; } } printf('替换后的字符串为:%s\n', str); break; } default: printf('输入错误\n'); break; } return 0; }
原文地址: https://www.cveoy.top/t/topic/gxXv 著作权归作者所有。请勿转载和采集!