- 论坛徽章:
- 0
|
给楼主的,
#include<stdio.h>
#include<stdlib.h>
void fun(char * deststr,char * sourstr,int pos);
int main(){
int i=0;
char str1[]="this is a destination string!";
char str2[]="******";
fun(str1,str2,4);
printf("After calling fun,the str1 is \n");
printf("%s\n",str1);
return 0;
}
void fun(char * deststr,char * sourstr,int pos){
int length1;
int length2;
int flag;
char * string1;
char * string2;
char * p;
string1=deststr;
length1=0;
length2=0;
while(*string1++!='\0'){
length1++;
}
string2=sourstr;
while(*string2++!='\0'){
length2++;
}
printf("len1=%d,len2=%d\n",length1,length2);
if(pos>length1){
printf("out of the string range!\n");
return ;
}
p=(char * )malloc(length1-pos);
string1=deststr;
string2=sourstr;
string1=string1+pos;
flag=0;
do{
p[flag++]=*string1++;
}while(*string1!='\0');
p[flag]='\0';
string1=deststr+pos;
for(flag=0;flag<length2;flag++)
*string1++=string2[flag];
flag=0;
while(p[flag]!='\0')
*string1++=p[flag++];
free(p);
}
调试通过了。。
本人认为对于字符串的改变,只能是这个思路了,如果不用库函数的话,呵呵。 |
|