c语言用指针法在一个字符串的指定位置插入一个字符串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言用指针法在一个字符串的指定位置插入一个字符串相关的知识,希望对你有一定的参考价值。
设计过程:
定义两个字符串s2,s2,字符k
输入两个字符串 s1 、 s2 和 s1 中任意字符 k
先遍历 s1 找到指定字符 k,记录下当前位置
从k字符开始,按s2的长度后移其余的数据
将s2拷贝到k所在的位置
输出s1。
代码如下:
#include <stdio.h>
#include <string.h>
void main()
char s1[100];
char s2[20];
char k;
int i,pos,len;
printf("input s1: ");scanf("%s", s1 );
printf("input s2: ");scanf("%s", s2 );
getchar();//滤掉回车符
printf("input k: ");scanf("%c", &k );
for( i=0;s1[i];i++ )
if ( s1[i]==k )
break;
pos=i; //记录下待插入的位置
len=strlen(s2); //得到s2长度
for( i=strlen(s1);i>=pos;i-- ) //后移字符串
s1[i+len]=s1[i];
strncpy( &s1[pos], s2, len ); //插入数据
printf("%s\\n", s1 ); //输出字符串
#include <string.h>
void insert_str(char str1[],char str2[],int position)
int i;
char *p_end,*p_cur,*p p_end=str1+strlen(str1)-1;
p_cur=str1+position-1;
for(i=0;str2[i]!='\0';i++)
for(p=p_end;p>=p_cur;p--)
*(p+1)=*p;
*p_cur=str2[i]; p_cur++; p_end++;
void main()
char s1[100],s2[20];
int position;
printf("输入字符串1:\n");
gets(s1);
printf("输入插入位置:");
do
scanf("%d",&position);
while(getchar()!='\n'); while(position<0||position>strlen(s1));
printf("输入字符串2:\n");
gets(s2);
insert_str(s1,s2,position);
printf("字符串被插入后变成:\n");
puts(s1);
javascript怎么在指定的字符后插入字符
已知str1,str2,及包含在str2内的一个连续字符串str3。怎么在str2里的第一个str3后插入str1?如str1为kkk,str2为abc&d&,str3为&,怎么实现在str2(abc&d&)里的第一个str3(&)后加入str1(kkk),而变成abc&kkkd&!请高手解答!
@cqh46 回答的代码有点问题,如果str2中包含不只两个str3就有问题了。不过思路是正确的,我在此基础上修改一下,请试试以下代码:
var str1="kkk",str2="sdfdf&ddd&zx&&s",
str3="&",
ary=str2.split(str3);
//当数组长度大于1,即str2中包含了str3
if(ary.length>1)
//将数组的第二个元素前拼上str1
ary[1] = str1 + ary[1];
//再用str3做为分隔符将数组拼成字符串
str2 = ary.join(str3);
alert(str2); // sdfdf&kkkddd&zx&&s
希望对你有所帮助。
追问可以帮我写成function insertStr(str1,str2,str3)的形式吗?
追答function insertStr(str1, str2, str3)var ary=str2.split(str3);
//当数组长度大于1,即str2中包含了str3
if(ary.length>1)
//将数组的第二个元素前拼上str1
ary[1] = str1 + ary[1];
//再用str3做为分隔符将数组拼成字符串
str2 = ary.join(str3);
return str2;
alert( insertStr('kkk', 'sdfdf&ddd&zx&&s', '&') );
//sdfdf&kkkddd&zx&&s 参考技术A var str1 = "kkk";
var str2 = "abc&d&";
var str3 = "&";
var result = "";
var ary = str2.split(str3);
for(x in ary)
if(x == 0)
result = ary[x] + str3 + str1 + ary[parseInt(x)+1] + str3;
break;
document.write(result);
结果:abc&kkkd&
追问那要是不是在第一个str3后面插入,而是在第二个str3后插入,又如何写
以上是关于c语言用指针法在一个字符串的指定位置插入一个字符串的主要内容,如果未能解决你的问题,请参考以下文章