编程序实现功能:从键盘上输入两个字符串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 展开
例如: s1原内容为:abcdefghij ,s2原内容为:ABCDE
处理后的s1内容为:abcdeABCDEfghij
[提示] 考虑充分利用标准库函数:strlen,strcpy,strcat 展开
4个回答
展开全部
#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;
}
运行结果
展开全部
不知道你要用什么编程语言实现,如果用java的话用s1.length得到字符串长度后除以2截取前面部分,将s2和后面部门拼接上就好了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2017-08-09
展开全部
要输出而已,所以,判断长度,取中值。。。。。。先输出S1前段、输出S2、输出S2后端
~
~
~
~
~
~
~
~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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);
}
#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);
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询