在字符串中插入另一个字符串方法二
算法分析:
把第一个字符串的前一部分和后一部分分别保存在两个字符串result和tmp中
然后再做一个拼接reslut=reslut+str2+tmp
#include<stdio.h> #include<string.h> #define N 20 int main() { char str1[N],str2[N],result[2*N],tmp[N]; int n=0,i,j=0; printf("输入字符串1:\n"); gets(str1); printf("输入要插入的字符串:\n"); gets(str2); printf("输入插入的位置:"); //程序中并没有对n的值进行讨论,请根据str1的长度输入一个适当的值 scanf("%d",&n); for(i=0;i<n;i++) { result[i]=str1[i]; //把字符串的前一段保存在一个字符串中 } result[n]='\0'; for(i=n;str1[i];i++) { tmp[j++]=str1[i];//把字符串的后一段保存在一个字符串中 } tmp[j]='\0'; strcat(result,str2);//把字符串做一个拼接 strcat(result,tmp); puts(result); getchar(); return 0; }
下面内容转载
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char s[10];
int i = 0;
char *ss;
char *p;
char *ch;
printf("Please input your string\n");
scanf("%s",s);
p = s;
printf("Please input your insert place\n");
scanf("%d",&i);
ss = (char *)malloc(20);
ch = ss;
for(int j = 0;j <strlen(s)+1;j++)
{
if(i == j)
{
printf("-------");
*ss = ',';
ss++;
}
else
{
printf("*p:%c\n",*p);
*ss = *p;
ss++;
p++;
}
}
ss++;
*ss = '\0';
printf("%s\n",ch);
}
#include <iostream>
#include <string.h>
using namespace std;
void main()
{
int n,i=0,j=0;
char a[30]={0},b[30]={0},temp[30]={0},newch[30]={0};
cout<<"please enter the two strings:"<<endl;
cin>>a>>b;
cout<<"please enter the number:"<<endl;
cin>>n;
for (;j<n;j++)
{
newch[j]=a[j]; //将前n个字符保存到新的字符数组
}
for(;n<strlen(a);n++)
{
temp[i]=a[n]; //将n后面的字符串保存到临时数组temp中
i++;
}
strcat(newch,b); //将用户输入的字符连接到新数组中
strcat(newch,temp);//将n后面的临时字符串连接到新数组中
cout<<newch<<endl;