如何编写函数,用C++语言实现将一个字符串插入到另一个字符串的指定位置,最好用指针指向字符串来实现?

如题所述

按照你说的,最好用字符数组来存放字符串
这样字符数组名就是这个字符串的指针了,指定位置就可以直接用指针加偏移量来确定
例如 char a[100]="fjalsdjflasjfljasdljf";
char b[100]="djdfoaegksdalgslj";
假设将字符串b插入到字符串a的第十位之后(插入的位置超过字符串a的长度就没有意义了)
首先为字符串b腾出空位
int len=strlen(b);
for(int i=0;i<len;i++)
{
*(a+10+len+i) = *(a+10+i);
}
然后将b插入到腾出来的空位即可
for(int j=0;j<len;j++)
{
*(a+10+j) = b[j];
}
这个是最原理的东西,如果你能理解这个,那么后两个for循环其实可以合并为一个,全部代码为
char a[100]="fjalsdjflasjfljasdljf";
char b[100]="djdfoaegksdalgslj";
int len=strlen(b);
for(int i=0;i<len;i++)
{
*(a+10+len+i) = a[10+i];
*(a+10+i) = b[i];
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-05-18
#if 1
//用C++语言实现将一个字符串插入到另一个字符串的指定位置,最好用指针指向字符串来实现?
#include<iostream>
#include <string.h>

int main()
{
using namespace std;
char str1[] = "11111111 ";
printf("%s\n",str1);
char * name = "tom";
strncpy(str1+3,name,strlen(name));
printf("%s\n",str1);
/************************************************************************/
/* 结果 */
/* 11111111 */
/* 111tom11 */
/************************************************************************/
return 0;
}
#endif
注意strncpy的第三个参数控制大小
char * strncpy(char *s1,const char*2,size_t n); 该函数把s2指向的字符串复制到s1指向的位置,复制的字符数不超过n个。返回值是s1。空字符后的字符不被复制。如果源字符串的字符数少于n个,在目标串中就以空字符填充。如果源字符串的字符数大于或等于n个,空字符就不被复制。返回值是s1.
第2个回答  2012-05-19

如何编写函数,用C++语言实现将一个字符串插入到另一个字符串的指定位置...
按照你说的,最好用字符数组来存放字符串这样字符数组名就是这个字符串的指针了,指定位置就可以直接用指针加偏移量来确定例如char a[100]="fjalsdjflasjfljasdljf";char b[100]="djdfoaegksdalgslj";假设将字符串b插入到字符串a的第十位之后(插入的位置超过字符串a的长度就没有意义了)首先为字符串b腾出空...

C语言,将一个字符串插入到另一个字符串的制定位置
include<stdio.h> void main(){ void insert(char a[],char b[],int t);char a[100],b[100];int t,i,j;printf("input a string:\\n");gets(a);printf("inut b string:\\n");gets(b);printf("input the position to insert:\\n");scanf("%d",&t);if(t<=0 || t>strlen(...

C++把一个字符串用指针赋值给另一个字符串
include<iostream> include<string> using namespace std;int main(){ char s[]="asdfghjk",b[20];strcpy(b,a);\/\/直接使用字符串拷贝就可以了 cout<<b;return 0;} 如果是char b = a的话只是把a和b所指向的内存一样,如果修改了a的值则b的值也会同时进行修改。如果是 for(int i=0;i<...

编写一个完整的过程,将一个字符串插入到另一个字符串的某个位置后面
int len1 = Stringlength(first);int len2 = StringLength(second);if (point > len2){ return NULL;\/\/错误的位置 无法插入 } char *result = new char[len1 + len2];for (int i = 0; i < point; ++i){ result[i] = second[i];} for (int i = 0; i < len1; ++i){ ...

c++把一个字符串加到另一个字符串后面的涵数
strcat(char[],char[]);C++中定义字符串类型的变量用加号即可实现 如:string str1="I am"string str2="student"str1=str1+str2;这时str1为“I am student”

c++一个字符串含有另一个字符串个数 用指针
two strings...\\n";cin >> s >> t;for(int x,sum=0,ls=s.length(),i=0;i<ls;i++)if((x=s.find(t,i))!=string::npos)sum++,i=x;if(sum)cout << "A total of " << sum << " sub string is(were) found...\\n";elsecout << "No find...\\n";return 0;...

C语言编程:将一个字符插入到字符串中的指定位置
Description:把字符串截取成2段,将指定字符插入,让你将它们再连接。 #include <stdio.h> #include <string.h> int main(void) { char str[256],s1[256],s2[256]; char ch; int i,j=0,k=0; printf("输入字符串:\\n"); gets(str); printf("输入要插入的字符和位置:\\n"); scanf(...

C++问题在字符串中插入另一个字符串
\/\/string类中提供截取子字符串的函数 include<iostream> include<string> using namespace std;\/\/把b[20]插入到51之间c[20]插入41之间,使a变为”123456789123456789123456789“int main(){ char a[40]="123451234123456789";char b[20]="6789";char c[20]="56789";string sa(a);sa = sa....

C++ 如何将一个文件里的数据写入到另一个文件里?
C++ 实现文件复制的方法为:文件操作需要用到头函数fstream 用ifstream打开源文件,备读 用ofstream打开目标文件,备写 循环读取源文件 用getline()函数,逐行读取源文件到字符串中 用cout输出字符串到标准输出(屏幕)把读到的字符输出到目标文件 若读文件结束,结束循环 关闭源文件和目标文件 参考代码:i...

如何在已有的字符串之前加另一段字符串(C++)
\/\/1.用string类 string s1("World");string s2("Hello ");string s3 = s2 + s1;cout<<s3<<endl;\/\/2.函数 char *ch1 = "World";char * ch2 = "Hello ";char ch3[30]; \/\/空间要够,否则就自己分配,new和strlen一起用 strcpy(ch3,ch2); \/\/新版的VC中提供了更安全的版本:...

相似回答