C语言由键盘任意输入一串字符,再输入一个字符和一个位置,将此字符插入在此串字符的这个位置上,且不能用字符串处理函数
时间: 2023-06-09 22:05:52 浏览: 61
好的,我明白你的问题了。这个问题可以通过 C 语言的数组和循环来实现。以下是样例代码:
```c
#include <stdio.h>
int main() {
char str[100];
char c, tmp;
int pos, len, i;
printf("请输入一串字符:");
scanf("%s", str);
printf("请输入要插入的字符:");
scanf(" %c", &c);
printf("请输入要插入的位置:");
scanf("%d", &pos);
// 计算字符串长度
for (len = 0; str[len] != '\0'; len++);
// 将插入位置后的字符都向右移动一位
for (i = len; i >= pos; i--) {
str[i + 1] = str[i];
}
// 插入新字符
str[pos] = c;
printf("插入后的字符串是:%s\n", str);
return 0;
}
```
这个程序首先通过 `scanf` 函数从键盘输入一串字符、要插入的字符和要插入的位置。然后,它使用一个循环计算字符串的长度。接下来,它使用另一个循环将插入位置后的字符都向右移动一位,为新字符腾出位置。最后,它将新字符插入到正确的位置,并输出结果。
希望这个代码能解决你的问题。如果你还有其他问题,请继续提问。
相关问题
C语言由键盘任意输入一串字符 再输入一个字符和一个位置 将此字符插入在此串字符的这个位置上。
好的,这个问题可以通过以下代码实现:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100], ch;
int pos, len;
printf("请输入字符串:");
scanf("%s", str);
printf("请输入字符和插入位置(以空格分隔):");
scanf(" %c %d", &ch, &pos);
len = strlen(str);
if (pos > len || pos < 0)
{
printf("插入位置不合法!\n");
return 0;
}
for (int i = len; i >= pos; i--)
{
str[i+1] = str[i];
}
str[pos] = ch;
printf("插入后的字符串是:%s\n", str);
return 0;
}
```
该程序通过 `scanf` 函数从键盘读入一个字符串,并根据用户输入的位置和字符在该字符串中插入新字符。
c语言由键盘任意输入一串字符,再输入一个字符和一个位置,将此字符插入在此串字符的这个位置上
下面是一个实现将字符插入到字符串指定位置的c语言代码:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100], ch, insert_ch;
int pos, len, i;
printf("请输入一个字符串:");
scanf("%s", str);
printf("请输入要插入的字符:");
scanf(" %c", &insert_ch);
printf("请输入要插入的位置:");
scanf("%d", &pos);
len = strlen(str);
if (pos > len) { // 如果插入位置超出了字符串长度,则直接将字符追加到字符串末尾
str[len] = insert_ch;
str[len + 1] = '\0';
} else { // 否则将字符插入到指定位置
for (i = len; i >= pos; i--) {
str[i + 1] = str[i];
}
str[pos] = insert_ch;
}
printf("插入后的字符串为:%s\n", str);
return 0;
}
```
该程序先让用户输入一个字符串,再输入一个要插入的字符和一个要插入的位置。然后程序会根据输入的位置将字符插入到字符串中,最后输出插入后的字符串。