char*insert(char*s,charc,intn)
{
intlen=strlen(s);//計算字串的長度
if(n
char*p=s;//指標p指向字串的首地址
p=p+len+1;//p指向該字串的末尾再加一的地址
do{
*p=*(--p);//將指標p指向的前一個地址的值賦給當前地址
}while(p>s);//p一直減到字串的首地址則退出迴圈
(*p)=c;//將要插入的字元賦值給p所指向的地址,此時就是新串的首地址
}elseif(n>=len){//如果n>=len就插入到末尾
*(s+len)=c;
*(s+len+1)="\0";//末尾加上結束符
}else{//插入中間
char*p=s+len+1;//p指向末尾加1的位置
do{//跟插入頭部一樣的操作
*p=*(--p);
}while(p>s+n);//結束條件變成p指向需要插入的位置的時候
(*p)=c;//將c賦值p指向的地址
}
returns;
不過這樣做不安全,擴充字串的時候,應該重新申請一塊記憶體,上述函式是直接在後面擴充,新擴充進來的地址有可能正在被使用,很危險這樣做
char*insert(char*s,charc,intn)
{
intlen=strlen(s);//計算字串的長度
if(n
char*p=s;//指標p指向字串的首地址
p=p+len+1;//p指向該字串的末尾再加一的地址
do{
*p=*(--p);//將指標p指向的前一個地址的值賦給當前地址
}while(p>s);//p一直減到字串的首地址則退出迴圈
(*p)=c;//將要插入的字元賦值給p所指向的地址,此時就是新串的首地址
}elseif(n>=len){//如果n>=len就插入到末尾
*(s+len)=c;
*(s+len+1)="\0";//末尾加上結束符
}else{//插入中間
char*p=s+len+1;//p指向末尾加1的位置
do{//跟插入頭部一樣的操作
*p=*(--p);
}while(p>s+n);//結束條件變成p指向需要插入的位置的時候
(*p)=c;//將c賦值p指向的地址
}
returns;
}
不過這樣做不安全,擴充字串的時候,應該重新申請一塊記憶體,上述函式是直接在後面擴充,新擴充進來的地址有可能正在被使用,很危險這樣做