编写一个函数insert(s1,s2,ch),实现在字符串s1中的指定字符ch位置处插入字符串s2。

编写一个函数insert(s1,s2,ch),实现在字符串s1中的指定字符ch位置处插入字符串s2。
例如:在字符串“I like cake”中的k字符处,插入“PSW”,
得新字符串“I likPSWe cakPSWe”
这个怎么写啊?、呼呼~~

c#**************************
public string insert(string s1,string s2,char ch)
{
string[] tempstr = s1.Split(ch.ToString()); ///将s1按照搜索到的字符进行分割,返回字符串数组,并丢失分割依据,即字符ch
string news1 = "";
for(int i=0;i<tempstr.Length;i++)///组合新字符串;在第一个串和第二个串分割的地方添加s2
{news1+=tempstr[1];
news1+=ch.ToString();
if(0==i) news1+=s2;
}
return news1;
}

c++**********************************
char* insert(char* s1,char*s2,char ch)
{
int i,j.k;
int lengths1,lengs2;///统计s1和s2的长度
for(i=0;s1[i]!='/0';i++)////定位分割点,/0表示字符串结束的标志.i表示分割位置
{if(s1[i]==ch) break;}
for(lengths1=0;s1[lengths1]!='/0';lengths1++)
;
for(lengths2=0;s2[lengths2]!='/0';lengths2++)
;
char* newstr = new char[lengths1+lengths2]
for(j=0;j<=i;j++)///安置s1前一部分
{newstr[j]=s1[j];}
for(k=0;k<lengths2;k++)///安置s2
{newstr[j+k]=s2[k];}
for(i=0;i<lengths1+lengths2;i++)///安置s1后一部分
{newstr[j+k+i]=s1[j+i];}
return newstr;
}

理论上你需要加上判断,如果没能找到ch,那么如何如何。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-01-03
我给你说个思路吧 你先用strchr()先进行字符匹配 找到ch 而后得到他的指针后 用 strcat ()进行串联啊 挺简单的 你不是就想弄一个封装嘛……

insert(s1,s2,ch)
{
char *ptr, c = ch;
char string[1024];
bzero(string,strlen(string));
ptr = strchr(s1, c);
*ptr=' 0';
strcat(string,s1);
strncat(string,s2,strlen(s2));
strcat(string,ptr+1);
memset(s1,string,strlen(string));

}本回答被网友采纳

编写一个函数insert(s1,s2,ch),实现在字符串s1中的指定字符ch位置处插...
public string insert(string s1,string s2,char ch){ string[] tempstr = s1.Split(ch.ToString()); \/\/\/将s1按照搜索到的字符进行分割,返回字符串数组,并丢失分割依据,即字符ch string news1 = "";for(int i=0;i<tempstr.Length;i++)\/\/\/组合新字符串;在第一个串和第二个串分割...

求救c语言:编写一个函数insert(s1,s2,ch),实现在字符串s1中的指定字符c...
你的s1,s2是字符,不是字符串

...s2[ ],int pos),实现在字符串s1中的指定位置pos处插入字符串s2。_百...
void insert(char s1[],char s2[],int pos);void main(){ char s1[50],s2[50];int pos;gets(s1);gets(s2);printf("请选择要插入的位置: ");scanf("%d",&pos);insert(s1,s2,pos);} void insert(char s1[],char s2[],int pos){ int i,a,b;char o[20];b=0;a=strlen(...

c语言编程 用指针编写函数:insert(s1,s2,f),其功能是在字符串s1中的指 ...
include<stdio.h>int insert(char *s1, char *s2, int f){ char *cp, *tcp; tcp = s1 + strlen(s1); cp = s1 + f; if(tcp < cp) return -1; while(tcp >= cp) { *(tcp + strlen(s2)) = *tcp; tcp--; } while(*s2 != '\\0') ...

用指针编写函数 : insert(s1,s2,f), 其功能是在字符串 s1 中的指定位...
include"string.h"char *insert(char *s1,char *s2,int f){ char s3[80];int a,i,j;if(*(s1+f-1)!='\\0'){ for(i=0;i<f-1;i++)s3[i]=*(s1+i);\/*把s1的f之前的字符复制到s3上*\/ } else return s1;a=strlen(s2);for(j=0;j<a;j++)\/*把s2的字符复制到s3上*\/ ...

两个字符串,怎么在指定位置插入,大神求解释代码
char s1[30];\/\/存放第一个字符串 char s2[30];\/\/存放第二个字符串 int f;\/\/存储插入位置,索引值 printf("请输入字符串s1:");gets(s1);printf("请输入字符串s2:");gets(s2);printf("输入插入的位置:");scanf("%d", &f);insert(s1, s2, f);\/\/调用insert函数 puts(s1);\/\/插入...

编程,输入一个字符串存入字符组S1中,然后将S1中的字符串复制到字符组...
\/\/仅供参考#include <stdio.h>#include <string.h>int main(){ char s1[256], s2[256]; int i; scanf ("%s", s1); \/*---字符串处理函数---*\/ \/\/strcpy(s2, s1); \/*---end---*\/ \/*---不用字符串处理函数---*\/ for (i = 0; s1[i] != '\\...

用c语言写一个程序,实现在字符串的内部增加字符串
return ;} \/\/结束函数 for(k=i;k>=n;k--) \/\/从s1最后一个开始直到第n个字符依次后移 s1[k+j]=s1[k]; \/\/后移j个位置 for(k=0;k<j;k++) \/\/依次把s2内容复制到s1相应位置 s1[k+n]=s2[k];} \/\/完成复制并结束函数 int main(){char str1[99]=...

输入两个字符串s1和s2,在s1指定的位置插入s2,试编程
include <string.h> int main( ){ char s1[81],s2[20];char *p1=s1,*p2=s2;int len1,len2,i,k;gets(p1);gets(p2);len1=strlen(p1),len2=strlen(p2);scanf("%d",&i);for(k=len1;k>=i;k--){ s1[k+len2]=s1[k];} for(k=0;k<len2;k++){ s1[i+k]=s2[k]...

编程序实现功能:从键盘上输入两个字符串s1和s2,将s2 的内容插入到s1内容...
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前半段转录至...

相似回答
大家正在搜