線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3397
推到 Plurk!
推到 Facebook!

字串取代的問題

尚未結案
dragonliu01
一般會員


發表:19
回覆:16
積分:7
註冊:2004-12-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-12-23 01:54:36 IP:134.208.xxx.xxx 未訂閱
題目是將happy_new_year中的new換成old, 我的想法是用for找出和old_str中一樣的字串,在用new_str中的字串取代, 不過似乎失敗了...寫法上有錯誤 拜託大大幫我看看並改正 ><   #include #include int substitute_string(char *,char *, char *); int main(void){ char *str="happy_new_year"; char *new_str="old"; char *old_str="new"; int i; int substitute_string(char *str,char *old_str, char *new_str); system("pause"); return 0; } int substitute_string(char *str,char *old_str, char *new_str){ int i,p;
        for(i=0;*(str i)!='\0';str  )
        {
            if(*(str i)==*(old_str))
              {
              for(p=0;p<100;p  )
                 {
                 if(*(str i p 1)==*(new_str p))
                    {
                    *(str i p)=*(old_str p-1); 
                    } 
                 else
                    break;
                 } 
              } 
            else 
                break; 
        }
return 0; } 發表人 - dragonliu01 於 2004/12/23 02:29:56 發表人 - dragonliu01 於 2004/12/23 02:37:04 發表人 - dragonliu01 於 2004/12/23 02:37:30
dragonliu01
一般會員


發表:19
回覆:16
積分:7
註冊:2004-12-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-12-23 10:58:34 IP:134.208.xxx.xxx 未訂閱
重新用別的方法寫了一遍,已經將old_str以new_str取代,但是要如何把old接到 happy_new_year中呢?? [code] #include #include #include int substitute_string(char *,char *, char *); void check(char * ,char * , char *); int main(void){ char *str="happy_new_year"; char *new_str="old"; char *old_str="new"; int substitute_string(char *str,char *old_str, char *new_str); system("pause"); return 0; } int substitute_string(char *str,char *old_str, char *new_str){ void check(char *str,char *old_str, char *new_str); return 0; } void check(char *str,char *old_str, char *new_str){ if (*old_str=='\0') { *new_str=*old_str; //遞迴終點 } else if(*old_str==*str) { check(str 1,old_str 1,str 1); //持續檢查是否相同 } else return ; //若沒檢查到和*old_str相同則跳出 } [\code]
blk5743
高階會員


發表:34
回覆:371
積分:236
註冊:2003-11-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-12-23 11:50:06 IP:61.66.xxx.xxx 未訂閱
試試這樣
 
//---------------------------------------------------------------------------    #pragma hdrstop    //---------------------------------------------------------------------------
#include 
#include 
#include 
#pragma argsused
//---------------------------------------------------------------------------
bool ReplaceStr(char *str,char *new_str,char *old_str)
{
    unsigned char StrLen = strlen(str),RepLen = strlen(old_str);
    for ( int i = 0; i < (StrLen-RepLen); i   )
    {
        if ( *(str i) == *old_str )
            if ( *(str i 1) == *(old_str 1) )
                if ( *(str i 2) == *(old_str 2) )
                {
                    *(str i) = *new_str;
                    *(str i 1) = *(new_str 1);
                    *(str i 2) = *(new_str 2);
                    printf("%s\r\n",str);
                }
    }
}    int main(void){
    char *str="happy_new_year";
    char *new_str="old";
    char *old_str="new";
    ReplaceStr(str,new_str,old_str);        system("pause");
return 0;
}    
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-12-23 13:00:22 IP:221.169.xxx.xxx 未訂閱
有現成的STRSTR函數為什麼不用呢? 先用STRSTR找到位置。再用MEMCPY就把舊的換成新的了啊。 當然。這是指要換的字串長度一樣的情況。 如果不一樣長。就要準備一個空的BUFFER來做COPY用囉。^_^
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-12-23 14:45:15 IP:218.15.xxx.xxx 未訂閱
dragonliu01您好: 直接用StringReplace,试试:
   AnsiString sz1="happy_new_year";
   ShowMessage(sz1);
   AnsiString sz2;
   sz2=StringReplace(sz1, "new", "old", TReplaceFlags()<
将old替new,具体可查看站内“StringReplace”关键字    ~~~行径窄处,留一步与人行~~~

        
terencechiu
一般會員


發表:13
回覆:29
積分:8
註冊:2004-12-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-08-30 12:01:02 IP:61.222.xxx.xxx 未訂閱
大大您寫的我看不太懂。 可以給我sample code 嗎? 我有一個字串,想把其中的某些字取代。像是UltraEdit的replace一樣。 char ABC[128] = "08/30/05 11:26:30"; 我想把"/"取代成"-",把" "取代成"-",把":"取代成"-"。 不知道有什麼函數,在VC 裡面可以用呢? Terence Chiu
------
Terence Chiu
系統時間:2024-05-12 12:12:02
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!