寫一個函數,實現兩個字符串的比較。即實現strcmp函數,s1=s2時返回0,s1!=s2時返回二者第一個不同字符的ASCII值。


 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 
 4 int main(){  5     setvbuf(stdout,NULL,_IONBF,0);  6     char s1[255],s2[255];  7     int strcmp(char *,char *);  8     int result;  9 
10     printf("1st string:"); 11  gets(s1); 12     printf("2nd string:"); 13  gets(s2); 14     result=strcmp(s1,s2); 15     printf("The comparing result is %d.",result); 16 
17     return EXIT_SUCCESS; 18 } 19 
20 int strcmp(char *p1,char *p2){ 21     int i; 22     int result; 23 
24     result=0;                        //先假設兩個字符串相等,比較結果為0
25     for(i=0;*(p1+i)&&*(p2+i);i++)    //比較兩個字符串中的對應字符都不為\0的情況
26  { 27         if(*(p1+i)!=*(p2+i)) 28  { 29             result=*(p1+i)-*(p2+i); 30             break; 31  } 32  } 33     
34     //若兩個字符串的長度不相等,但有字符的部分是完全相同的,退出上述循環后,result還是0
35     if(result==0) 36         result=*(p1+i)-*(p2+i); 37     return result; 38 }

下面是譚浩強的答案,比較簡單。我還是不能靈活運用while語句

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 
 4 int main(){  5     setvbuf(stdout,NULL,_IONBF,0);  6     char s1[255],s2[255];  7     int strcmp(char *,char *);  8     int result;  9 
10     printf("1st string:"); 11  gets(s1); 12     printf("2nd string:"); 13  gets(s2); 14     result=strcmp(s1,s2); 15     printf("The comparing result is %d.",result); 16 
17     return EXIT_SUCCESS; 18 } 19 
20 int strcmp(char *p1,char *p2){ 21     int i=0; 22     int result; 23 
24     while(*(p1+i)==*(p2+i)) 25         if(*(p1+i++)=='\0') 26             result=0; 27     result=*(p1+i)-*(p2+i); 28     
29     return result; 30 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 寫一函數,實現兩個字符串的比較。即自己寫一個strcmp函數,函數原型為int strcmp(char * p1 ,char * p2); 設p1指向字符串s1, p2指向字符串s2。要求當s1=s2時,返回值為0;若s1≠s2,返回它們二者第1個不同字符的ASCII碼差值(如"BOY"與"BAD" 10.17寫一函數,實現兩個字符串的比較。即自己寫一個strcmp函數,函數原型為: int strcmp(char * p1,char * p2) 設p1指向字符串s1,p2指向字符串s2。要求:當s1=s2時,返回值為0。當s1≠s2時,返回它們兩者的第一個不同字符的ASCII碼差值(如”BOY”與”BAD”,第二個字母不同,”O”與”A”之差為79-65=14);如果s1>s2,則輸出正值; 8、將兩個字符串s1,s2進行比較,如果s1>s2,則輸出一個正數。如果s1 = s2,輸出零。如果s1 < s2, 輸出一個負數,不用strcmp函數,輸出的正數或者負數的絕對值應該是比較兩字符串相應字符的ascii碼的差值。 編寫一個程序,將連個字符串s1和s2比較,如果s1 > s2,輸出一個整數;若s1 = s2,輸出0;若s1 < s2,輸出一個負數。不要用strcpy函數。兩個字符串用gets函數讀入。輸出的正數或負數的絕對值應是相比較的兩個字符串相對應字符的ASCII碼的差值。例如,"A"和“C”相比,由於"A" < "C",應輸出負數,同時由於‘A’與‘C’的ASCII碼差值為2,因此應輸出"-2" 編寫一個程序,將兩個字符串s1和s2比較,如果s1 > s2,輸出一個整數;若s1 = s2,輸出0;若s1 < s2,輸出一個負數。不要用strcpy函數。兩個字符串用gets函數讀入。輸出的正數或負數的絕對值應是相比較的兩個字符串相對應字符的ASCII碼的差值。 寫一函數,實現兩個字符串的比較。即自己寫一個strcmp函數,函數原型為int strcmp(char * p1 ,char * p2); 設p1指向字符串s1, p2指向字符串s2 動態規划:給出兩個字符串s1和s2,返回其中最大的公共子串 C語言:求n(n<10000)以內的所有四葉玫瑰數。-將字符串s1和s2合並形成新的字符串s3,先取出1的第一個字符放入3,再取出2的第一個字符放入3, 7、將字符串數組s2中全部字符復制到字符數組s1中,不用strcpy函數 編寫一個程序,將一個字符串s2插入到字符串s1中,其起始插入位置為n。 **輸入格式要求:"%d" 使用gets()接收字符串s1和s2 提示信息:"main string:" "sub string:" "site of begining:(<=%d)" **輸出格式要求:"After instert:%s\n" 程序運行示例如下:
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM