将一个字符串插入到另一个字符串的指定位置的题目(用C语言解决)

从键盘上输入两个字符串(长度不大于20)和整数n(0<n<=20),要求将第二个字符串插在第一个字符串的n位置开始处并输出。示例如第一个字符串为"youareok."第二... 从键盘上输入两个字符串(长度不大于20)和整数n(0<n<=20),要求将第二个字符串插在第一个字符串的n位置开始处并输出。
示例如第一个字符串为"you are ok."
第二个字符串为"fine and "
输入的整数为8,则表示将fine插在ok前面(y前面为位置0,o前面的位置为8),输出为you are fine and ok.
展开
 我来答
刺友互
高粉答主

2019-06-22 · 每个回答都超有意思的
知道答主
回答量:3979
采纳率:100%
帮助的人:72万
展开全部

1、参数2去掉与参数1相同的字符串

2、从指定位置截取字符串的指定长度。

3、从字符串中找到指定字符串的位置后一位开始到结束的字符串。

4、从指定的位置开始截取字符串到字符串结尾处。

5、从字符串找到指定字符串开始截取字符串的结尾。

6、从开始到指定字符串的文件的字符串截取。

7、截取指定2个字符之间的字符串,组合成数组。

问明6E
高粉答主

2019-06-15 · 每个回答都超有意思的
知道答主
回答量:279
采纳率:100%
帮助的人:12.9万
展开全部

void Insert(char*s1,char*s2,int n)

{

char*result=(char*)malloc(20*sizeof(char));

char*temp=result;//保存result的初始地址,因为后面要改变result

//把s1的一部分赋给result

for(int i=0;i&lt;n;i++)

{

*result=*(s1++);

result++;

}

//把s2的所有内容赋给result

while(*s2!='\0')

{

*result=*(s2++);

result++;

}

*result='\0';//字符串结束符

printf("%s\n",temp);

}

int main()

{

char*s1=(char*)malloc(20*sizeof(char));

char*s2=(char*)malloc(20*sizeof(char));

int n;

printf("请输入第一个字符串:");

scanf("%s",s1);

printf("请输入第二个字符串:");

scanf("%s",s2);

printf("请输入插入的位置:");

scanf("%d",&n);

Insert(s1,s2,n);

getchar();

system("pause");

return 0;

}

示例运行结果:

请输入第一个字符串:You are ok

请输入第二个字符串:fine and

请输入插入的位置:8

You are fine and ok

请按任意键继续…

扩展资料:

char用法:

C语言中char用于定义字符类型变量或字符指针变量,例如“char a;”则定义了变量a是字符类型,“char*a;”则定义了变量a是字符指针类型。

char是C语言整型数据中比较古怪的一个,其它的如int/long/short等不指定signed/unsigned时都默认是signed,但char在标准中不指定为signed/unsigned,编译器可以实现为带符号的,也可以实现为不带符号的。

关于char还有一个特殊的语言就是char*,它在C语言中有专门的语义,既不同于signed char*,也不同于unsigned char*,专门用于指以'\0'为结束的字符串。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhongzunru
2011-04-13 · TA获得超过499个赞
知道小有建树答主
回答量:231
采纳率:0%
帮助的人:225万
展开全部
#include <stdio.h>
#include <string>
using namespace std;

void Insert(char* s1,char* s2,int n)
{
char *result = (char*)malloc(20*sizeof(char));
char *temp = result; //保存result的初始地址,因为后面要改变result
//把s1的一部分赋给result
for(int i=0; i<n; i++)
{
*result = *(s1++);
result++;
}
//把s2的所有内容赋给result
while(*s2 != '\0')
{
*result = *(s2++);
result++;
}
*result = '\0'; //字符串结束符
printf("%s",temp);
}

int main()
{
char *s1 = (char*)malloc(20*sizeof(char));
char *s2 = (char*)malloc(20*sizeof(char));
int n;
printf("请输入第一个字符串:");
scanf("%s",s1);
printf("请输入第二个字符串:");
scanf("%s",s2);
printf("请输入插入的位置:");
scanf("%d",&n);
Insert(s1,s2,n);
return 0;
}
编译通过!!有什么不懂可以问我哈
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Sywzy
推荐于2018-02-27 · TA获得超过342个赞
知道小有建树答主
回答量:218
采纳率:0%
帮助的人:179万
展开全部
#include<stdio.h>
#include<string.h>
void main()
{
char ch[40],ch2[20],ch3[20],i,j,temp,x;
printf("请输入第一串字符:");
gets(ch);
printf("请输入第二串字符:");
gets(ch2);
printf("请输入插入的位置:");
scanf("%d",&i);
temp = i;
for(j=0;ch[temp] != '\0';j++,temp++)
ch3[j] = ch[temp];
ch3[j]='\0';
for(j=0;j<strlen(ch);j++,i++)
ch[i] = ch2[j];
strcat(ch,ch3);
ch[i] = '\0';
puts(ch);
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式