找回密碼 或 安全提問
 註冊
|註冊|登錄

伊莉討論區

搜索
請尊重及感激所有版主付出和奉獻儲值後自動升級用戶組你準備好成為出色的版主了嗎?
mega 無無修我的英雄流出3dadobe
おとなり渣男電車緊張萬分反逆のアnurtale 4394447

休閒聊天興趣交流學術文化旅遊交流飲食交流家庭事務PC GAMETV GAME
熱門線上其他線上感情感性寵物交流家族門派動漫交流貼圖分享BL/GL
音樂世界影視娛樂女性頻道潮流資訊BT下載區GB下載區下載分享短片
電腦資訊數碼產品手機交流交易廣場網站事務長篇小說體育運動時事經濟
上班一族博彩娛樂

(4月新番)[繁]狼與辛

[超清繁中]霹靂英雄戰

✡ 斗破蒼穹 年番/鬥

(4月新番)[繁]為美好

(4月新番)[簡]怪異與

(4月新番)[繁]狼與辛
C & C++ 語言C# 語言Visual Basic 語言PHP 語言JAVA 語言
查看: 1439|回復: 7
打印上一主題下一主題

[問題]關於strcmp()[複製鏈接]

sony.s1984 該用戶已被刪除
跳轉到指定樓層
樓主
發表於 2009-8-31 04:46 PM|只看該作者|倒序瀏覽
if (strcmp(spe,A)==0 ||strcmp(fir,A)==0 || strcmp(sec,A)==0 )

今天的號碼是8碼:12345678

如果用strcmp是比對8個號碼是否全部符合,那假如我只要比對4個號碼呢?

假設今天輸入的還是8個號碼,如上12345678,我只要比對到5678就得什麼獎品或是

比對到1234就得什麼獎品,該怎麼寫這個程式呢?
分享分享0收藏收藏0支持支持0
如果發覺自己無法使用一些功能或出現問題,請按重新整理一次,並待所有網頁內容完全載入後5秒才進行操作。

使用道具檢舉

Rank: 2Rank: 2

帖子
87
積分
213 點
潛水值
5447 米
頭香
發表於 2009-9-1 03:31 AM|只看該作者
成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。
不太清楚你上面那行比對的code的意思...

有一個叫strncmp(stringA,stringB,n)的函式,可以比較A與B前n的字母的大小。
如果有兩個號碼stringA,stringB要比較前4個字母跟後四個字母的話可以這樣寫:
strncmp(stringA,stringB,4)==0             //前四個字母比較
strncmp(&stringA[4],&stringB[4],4)==0 //後四個字母比較

當然其實也是可以利用loop來一個一個比較啦:)...
瀏覽完整內容,請先 註冊登入會員
回覆中加入附件並不會使你增加積分,請使用主題方式發佈附件。

使用道具檢舉

Rank: 2Rank: 2

帖子
157
積分
209 點
潛水值
2305 米
3
發表於 2009-9-1 03:32 AM|只看該作者
如果瀏覽伊莉時速度太慢或無法連接,可以使用其他分流瀏覽伊莉,www01.eyny.com(02,03)。
請參見以下程式碼

使用者輸入你說的12345678與5678後進行搜尋字串
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>

  4. int main(int argc, char* argv[]) {
  5.     char source[80];
  6.     char search[80];
  7.     char *loc;
  8.        
  9.     printf("輸入第一個字串:"); //例如12345678
  10.     gets(source);
  11.        
  12.     printf("搜尋第二個字串:"); //例如5678
  13.     gets(search);
  14.        
  15.     loc = strstr(source, search);
  16.        
  17.     if(loc == NULL) {
  18.         printf("找不到符合的字串\n");
  19.     }
  20.     else {
  21.         printf("在索引位置 %d 處找到字串\n", loc - source);
  22.     }
  23.        
  24.     return 0;
  25. }
複製代碼
...
瀏覽完整內容,請先 註冊登入會員
成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。

使用道具檢舉

sony.s1984 該用戶已被刪除
4
發表於 2009-9-1 10:21 PM|只看該作者
下載: 訪客無法瀏覽下載點,請先 註冊登入會員
small2kuo


大大你好:

我只是在寫一個對發票的程式,因為是剛學C不久,所以寫得不好,那一組是比對特獎的Code,但是突然想到六獎只需要後三個號碼就好了,所以才上來問這個問題.
若對尊貴或贊助會員有任何疑問,歡迎向我們查詢。我們的即時通或MSN: admin@eyny.com

使用道具檢舉

Rank: 1

帖子
109
積分
199 點
潛水值
2623 米
5
發表於 2009-9-2 11:49 AM|只看該作者
分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。
如果是對發票的話,我覺的一個一個字對比較好,對到不一樣的字就break,再從對到幾個字來判斷是幾獎。
for(int i=strlen(search)-1;i!=0;i--)
{
  if(search[i]==source[i])num++;
  else break;
}
if(num<3) printf("no reward");
else if(num==3)以此類推

這樣應該比較符合對發票的規則吧!




使用道具檢舉

maxkuma 該用戶已被刪除
6
發表於 2009-9-4 11:17 AM|只看該作者
strcmp是比對整個字串
有另一個函數 strncmp(char* str1,char* str2,int len) --- 指定字元數目的字串比對
如果 str1小於 str2則傳回小於零的值;如果 str1大於 str2則傳回大於零的值;若二字串相等則傳回零。
char A[9];
char B[9];
比對前面四碼是否一樣if ( strncmp(A,B,4) == 0 )
比對前後面四碼是否一樣if ( strncmp(&A[4],&B[4],4) == 0 )
分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。

使用道具檢舉

Rank: 1

帖子
142
積分
70 點
潛水值
13612 米
7
發表於 2009-9-5 04:34 AM|只看該作者
本帖最後由 swordfish000 於 2009-9-5 04:35 AM 編輯

小弟寫的統一發票對獎,有興趣就看看吧!!~
  1. /*統一發票對獎*/
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <string.h>

  5. int main(){
  6.     char source[9];
  7.     char search[9];
  8.     char special[9];
  9.     int i,t;
  10.     do{
  11.             
  12.     printf("輸入特獎統一發票號碼(8碼):");
  13.     gets(special);
  14.    
  15.     printf("輸入中獎統一發票號碼(8碼):");
  16.     gets(source);
  17.     if(strlen(special)!=8 || strlen(source)!=8)
  18.          printf("特獎或中獎號碼錯誤,請重新輸入\n");
  19.     }while(strlen(special)!=8 || strlen(source)!=8);
  20.     strrev(special);
  21.     strrev(source);
  22.         
  23.     do{
  24.     t=0;
  25.     system("cls");
  26.     printf("特獎:%s\n",strrev(special));
  27.     printf("頭獎:%s\n",strrev(source));
  28.    
  29.     do{
  30.     printf("輸入對獎統一發票號碼(8碼):");
  31.     gets(search);
  32.     }while(strlen(special)!=8);
  33.    
  34.     strrev(special);
  35.     strrev(source);
  36.     strrev(search);   

  37.     for(i=0; i<8; i++)
  38.         if(source!=search)  break;
  39.         else  t=i;
  40.         
  41.     if( !strcmp(search,special) ) t=8;
  42.     /*  下面這堆就是上面那行  >.<"
  43.     for(i=7; i>=0; i--)
  44.         if(special==search) continue;
  45.         else  break;
  46.     if(i==-1) t=8;
  47.     */
  48.    
  49.          
  50.     switch(t)
  51.     {
  52.        case 2: printf("得到陸獎貳百元\n");   break;
  53.        case 3: printf("得到伍獎壹千元\n");   break;
  54.        case 4: printf("得到肆獎肆千元\n");   break;
  55.        case 5: printf("得到參獎壹萬元\n");   break;
  56.        case 6: printf("得到貳獎肆萬元\n");   break;
  57.        case 7: printf("得到頭獎貳拾萬元\n"); break;
  58.        case 8: printf("得到特獎貳佰萬元\n"); break;
  59.        default: printf("沒有中獎\n"); break;            
  60.     }
  61.    
  62.     system("pause");   
  63.     }while(strcmp(search,"0"));   
  64.     return 0;
  65. }
複製代碼
...
瀏覽完整內容,請先 註冊登入會員
如果發覺自己無法使用一些功能或出現問題,請按重新整理一次,並待所有網頁內容完全載入後5秒才進行操作。

使用道具檢舉

sony.s1984 該用戶已被刪除
8
發表於 2009-9-6 12:26 AM|只看該作者
小弟在這邊謝謝大家的幫忙~~~我會多多專研的!
若有安裝色情守門員,可用無界、自由門等軟件瀏覽伊莉。或使用以下網址瀏覽伊莉: http://www.eyny.com:81/index.php

使用道具檢舉

您需要登錄後才可以回帖 登錄 | 註冊

Powered by Discuz!

© Comsenz Inc.

重要聲明:本討論區是以即時上載留言的方式運作,對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。切勿上傳和撰寫 侵犯版權(未經授權)、粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。
回頂部