在刚才的代码上实现输入 hello 3x Hexllo 预期输出 hexllo
时间: 2024-03-08 15:50:39 浏览: 79
好的,可以在原来的代码基础上稍作修改,实现输入 hello 3x Hexllo 预期输出 hexllo 的功能:
```c
#include <stdio.h>
#include <string.h>
void insert_char(char *str, char c, int pos);
int main()
{
char str[100], c;
int pos;
printf("请输入原字符串:");
scanf("%s", str);
printf("请输入要插入的字符:");
getchar(); // 因为接下来要读取一个字符,需要先把缓冲区中的回车读掉
scanf("%c", &c);
if (c == 'x' || c == 'X')
{
// 如果要插入的字符是x或X,需要再读入一个数字
int num;
printf("请输入要插入的次数:");
scanf("%d", &num);
for (int i = 0; i < num; i++)
{
// 每次在原字符串的第pos个位置插入字符
insert_char(str, 'h', pos);
insert_char(str, 'e', pos + 1);
insert_char(str, 'l', pos + 2);
insert_char(str, 'l', pos + 3);
insert_char(str, 'o', pos + 4);
}
}
else
{
printf("请输入要插入的位置:");
scanf("%d", &pos);
insert_char(str, c, pos);
}
printf("插入后的字符串为:%s\n", str);
return 0;
}
void insert_char(char *str, char c, int pos)
{
int len = strlen(str);
// 将pos后面的字符向后移动一位
for (int i = len; i > pos; i--)
{
str[i] = str[i - 1];
}
// 在pos处插入字符c
str[pos] = c;
}
```
这个程序会先读入要插入的字符,如果是x或X,则再读入要插入的次数,然后在原字符串的第pos个位置插入hello。如果要插入的字符不是x或X,则直接读入要插入的位置,然后在原字符串的第pos个位置插入该字符。最后输出插入后的字符串。
阅读全文