回覆列表
  • 1 # 使用者9626932657960

    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;

    }

    不過這樣做不安全,擴充字串的時候,應該重新申請一塊記憶體,上述函式是直接在後面擴充,新擴充進來的地址有可能正在被使用,很危險這樣做

  • 中秋節和大豐收的關聯?
  • 你有哪些值得一推的書嗎?