C++设计一个通用函数实现在字符串s1中从第m个字符开始插入字符串s2,在主程序中对该函数进行测试
3个回答
展开全部
/* dest为目标字符串, size是dest字符串的占用字节数 ,pos表示的插入字符串的开始位置,str表示要插入的字符串 */
bool insert_str(char *dest, int size, int pos, const char* str){
if(str ==NULL || pos<0 || pos>=strlen(dest) || size<=strlen(dest)+strlen(str)){
cout << "插入字符串失败" << endl;
return false;
}
char *p_start = &dest[pos]; // 指向要插入字符串的开始位置
char *p_end = p_start + strlen(str); // 指向要插入字符串的结束位置
/* 把字符串dest的第pos位之后的字符串移动到插入字符串的结束位置的后面 */
for(int i=0; i<strlen(str); i++){
if(*(p_start+i) == '\0'){
break;
}else{
*(p_end+i) = *(p_start+i);
}
}
/* 开始插入的字符串 */
for(int i=0; i<strlen(str); i++){
*(p_start+i) = *(str+i);
}
cout << " 字符串插入成功" << endl;
return true;
}
int main(){
char str[50]="123789";
insert_str(str, 50, 3, "456");
cout << str << endl;
while(1);
return 0;
}
bool insert_str(char *dest, int size, int pos, const char* str){
if(str ==NULL || pos<0 || pos>=strlen(dest) || size<=strlen(dest)+strlen(str)){
cout << "插入字符串失败" << endl;
return false;
}
char *p_start = &dest[pos]; // 指向要插入字符串的开始位置
char *p_end = p_start + strlen(str); // 指向要插入字符串的结束位置
/* 把字符串dest的第pos位之后的字符串移动到插入字符串的结束位置的后面 */
for(int i=0; i<strlen(str); i++){
if(*(p_start+i) == '\0'){
break;
}else{
*(p_end+i) = *(p_start+i);
}
}
/* 开始插入的字符串 */
for(int i=0; i<strlen(str); i++){
*(p_start+i) = *(str+i);
}
cout << " 字符串插入成功" << endl;
return true;
}
int main(){
char str[50]="123789";
insert_str(str, 50, 3, "456");
cout << str << endl;
while(1);
return 0;
}
展开全部
您好,中公教育为您服务。
您好,由于您的问题比价专业,我们这边暂时无法解答呢!建议您可以在搜索引擎上搜索下,或者可以问问您的老师同学等等专业人士。更多公职类考试信息建议您访问陕西人事考试网,我们网站不仅会及时更新相关的招考信息,而且还有免费海量的备考资料。希望可以帮到您。
如有疑问,欢迎向中公教育企业知道提问。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//#include "stdafx.h"//vc++6.0加上这一行.
#include <iostream>
#include <string>
using namespace std;
string myfun(string s,string ts,int m){
return s.insert(m,ts);
}
int main(void){
string str,tstr;
int m;
cout << "Input a string...\nstr=";
cin >> str;
cout << "Enter a string to be inserted & position...\n";
cin >> tstr >> m;
cout << "After insert string as follows:\n";
cout << myfun(str,tstr,m) << endl;
return 0;
}
#include <iostream>
#include <string>
using namespace std;
string myfun(string s,string ts,int m){
return s.insert(m,ts);
}
int main(void){
string str,tstr;
int m;
cout << "Input a string...\nstr=";
cin >> str;
cout << "Enter a string to be inserted & position...\n";
cin >> tstr >> m;
cout << "After insert string as follows:\n";
cout << myfun(str,tstr,m) << endl;
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询