#include <stdio.h> int main() { char str[100], sub[20], temp[100]; int choice, i, j, pos, len; printf("请输入一个字符串:"); gets(str); printf("输入的字符串为: %s\n", str); while (1) { printf("\n1. 增加子字符串\n"); printf("2. 删除子字符串\n"); printf("3. 修改子字符串\n"); printf("4. 退出\n"); printf("请输入您的选择:"); scanf("%d", &choice); switch (choice) { case 1: printf("请输入要增加的子字符串:"); scanf("%s", sub); i = strlen(str); j = 0; while (sub[j] != '\0') { str[i++] = sub[j++]; } str[i] = '\0'; printf("增加后的字符串为: %s\n", str); break; case 2: printf("请输入要删除的子字符串的位置和长度(用空格隔开):"); scanf("%d %d", &pos, &len); i = 0; while (i < pos) { temp[i] = str[i]; i++; } j = pos + len; while (str[j] != '\0') { temp[i++] = str[j++]; } temp[i] = '\0'; strcpy(str, temp); printf("删除后的字符串为: %s\n", str); break; case 3: printf("请输入要替换的子字符串的位置、长度和新字符串(用空格隔开):"); scanf("%d %d %s", &pos, &len, sub); i = 0; while (i < pos) { temp[i] = str[i]; i++; } j = 0; while (sub[j] != '\0') { temp[i++] = sub[j++]; } j = pos + len; while (str[j] != '\0') { temp[i++] = str[j++]; } temp[i] = '\0'; strcpy(str, temp); printf("替换后的字符串为: %s\n", str); break; case 4: return 0; default: printf("无效的选择,请重试。\n"); break; } } } 在此基础实现在任意位置增添字符串
时间: 2024-03-07 13:49:08 浏览: 20
可以在第一种情况(增加子字符串)的代码基础上稍作修改,让用户输入要插入的位置即可。
修改后的代码如下:
```c
case 1:
printf("请输入要增加的子字符串:");
scanf("%s", sub);
printf("请输入要插入的位置:");
scanf("%d", &pos);
i = strlen(str);
j = i - pos;
while (j >= 0) {
str[i + strlen(sub)] = str[i];
i--;
j--;
}
i = pos;
j = 0;
while (sub[j] != '\0') {
str[i++] = sub[j++];
}
printf("增加后的字符串为: %s\n", str);
break;
```
在这段代码中,我们首先让用户输入要插入的位置 `pos`,然后将字符串从插入位置开始的所有字符向后移动 `strlen(sub)` 个位置,腾出空间给新插入的子字符串。之后再将子字符串插入到指定位置即可。
相关问题
include <stdio.h>#include <stdlib.h>
这是一个C语言的标准头文件的引用,其中<stdio.h>包含了C语言的输入输出函数,而<stdlib.h>包含了一些通用的工具函数和内存分配函数。这些头文件在C语言中非常常见,几乎每个C程序都会用到它们。下面是一个简单的例子,展示了如何使用这两个头文件。
```c
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num;
char str[100];
printf("Enter an integer: ");
scanf("%d", &num);
printf("You entered %d.\n", num);
printf("Enter a string: ");
scanf("%s", str);
printf("You entered %s.\n", str);
return 0;
}
```
上面的程序使用了<stdio.h>中的printf和scanf函数,以及<stdlib.h>中的exit函数。输入一个整数和一个字符串,然后将它们输出到控制台上。
程序分析#include <stdio.h>#include <string.h>#define MAX_LENGTH 100int main() { char str[MAX_LENGTH +
您提供的代码片段是一个简单的 C 语言程序,主要包含了用于输入和处理字符串的基本框架。这里做一下解释:
```c
#include <stdio.h> // 包含标准输入输出库,用于文件操作和基本函数如printf和scanf
#include <string.h> // 包含字符串处理函数,如strlen、strcpy等
#define MAX_LENGTH 100 // 宏定义了一个常量,表示字符串的最大长度为100个字符
int main() {
char str[MAX_LENGTH + 1]; // 定义一个字符数组str,用于存储用户输入的字符串,加1是因为字符串的结尾需要一个'\0'终止符
// 输入部分
printf("请输入一个字符串(不超过100字符):"); // 提示用户输入字符串
fgets(str, MAX_LENGTH + 1, stdin); // 使用fgets函数读取用户输入,包括换行符
// 剪切字符串中的换行符,如果有的话
str[strlen(str) - 1] = '\0'; // 如果最后一个字符是换行符,删除它
// 输出部分
printf("您输入的字符串是:%s\n", str); // 打印用户输入的字符串
return 0; // 主函数结束,通常返回0表示程序正常结束
}