编程序实现功能:从键盘上输入两个字符串s1和s2,将s2 的内容插入到s1内容的中间位置,输出处理后的字 5

编程序实现功能:从键盘上输入两个字符串s1和s2,将s2的内容插入到s1内容的中间位置,输出处理后的字符串s1例如:s1原内容为:abcdefghij,s2原内容为:AB... 编程序实现功能:从键盘上输入两个字符串s1和s2,将s2 的内容插入到s1内容的中间位置,输出处理后的字符串s1
例如: s1原内容为:abcdefghij ,s2原内容为:ABCDE
处理后的s1内容为:abcdeABCDEfghij
[提示] 考虑充分利用标准库函数:strlen,strcpy,strcat
展开
 我来答
碧海风云

推荐于2018-02-27 · 碧海风的秘密小据点!
碧海风云
采纳数:909 获赞数:10281

向TA提问 私信TA
展开全部
#include <stdio.h>
#include <string.h>

#define LEN 20

/*将src插入至des的pos处*/
void insertStr (char *des, char *src, int pos) {
char *posp = des+pos; /*指向des之pos处的指针*/
char front[LEN],back[LEN]; /*暂存字符串*/
int i;

i=0;
while (des<posp) /*des前半段转录至front*/
front[i++] = *des++;
front[i] = '\0'; /*标识字符串结束*/
des -= pos; /*des退回原字符串首*/

i=0;
while (*posp) /*des后半段转录至back*/
back[i++] = *posp++;
back[i] = '\0'; /*标识字符串结束*/

strcat(front,strcat(src,back)); /*三段字符串连接至front*/
strcpy (des,front); /*front赋值至des*/ 
}

int main(void) {
char s1[LEN],s2[LEN];
int pos;

puts ("请输入s1:");
gets (s1);
putchar ('\n');

puts ("请输入s2:");
gets (s2);
putchar ('\n');

puts ("================================================================");
putchar ('\n');

pos = strlen (s1)/2;
insertStr (s1,s2,pos);
puts ("将s2插入至s1中间处:");
puts (s1);
putchar ('\n');

getch (); 
    return 0;
}

运行结果

Bakerzks
2017-08-04 · NullPointExceptions
Bakerzks
采纳数:251 获赞数:1072

向TA提问 私信TA
展开全部
不知道你要用什么编程语言实现,如果用java的话用s1.length得到字符串长度后除以2截取前面部分,将s2和后面部门拼接上就好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2017-08-09
展开全部
要输出而已,所以,判断长度,取中值。。。。。。先输出S1前段、输出S2、输出S2后端

~
~
~
~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a1012144015
2015-11-29 · TA获得超过6415个赞
知道大有可为答主
回答量:9038
采纳率:40%
帮助的人:1343万
展开全部
#include<iostream>
#include<string>
using namespace std;
char *InsertString(char *Dest, const char *Source,int Pos) ;
int main()
{
char s1[100]="time";
char *s2="world!";
cout<<InsertString(s1,s2,3)<<endl;
return 0;
}

char *InsertString(char *Dest, const char *Source,int Pos)
{
int i;
char *front=new char[Pos+1];
char *behind=new char[strlen(Dest)-Pos+1];
for(i=0;i<Pos-1;++i)
front[i]=*(Dest+i);
front[i]='\0';
for(i=0;i<strlen(Dest)-Pos+1;++i)
behind[i]=*(Dest+Pos-1+i);
behind[i]='\0';
return strcat(strcat(front,Source),behind);

}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式