以下程式比較字串 s 與字串 t 是否相等
#include <stdio.h> #include <string.h> int main(void) { char s[] = "Hello, world!"; char t[] = "Hello, my friend!"; int test = strcmp(s, t); if (test == 0) { printf("All right!\n"); } else { if (test > 0) { printf("%s\n", s); } else { printf("%s\n", t); } } return 0; } /* 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:cstrcmp.c 功能:示範 string.h 中函數 strcmp() 的使用 作者:張凱慶 時間:西元2010年6月 */
編譯後執行,結果如下
您可以繼續參考
字串處理 string.h
- char *strcpy(char *s1, const char *s2);
- char *strncpy(char *s1, const char *s2, size_t n);
- char *strcat(char *s1, const char *s2);
- char *strncat(char *s1, const char *s2, size_t);
- int strcmp(const char *s1, const char *s2);
- int strncmp(const char *s1, const char *s2, size_t n);
- char *strchr(const char *s, int c);
- size_t strcspn(const char *s1, const char *s2);
- size_t strspn(const char *s1, const char *s2);
- char *strpbrk(const char *s1, const char *s2);
- char *strrchr(const char *s, int c);
- char *strstr(const char *s1, const char *s2);
- char *strtok(char *s1, const char *s2);
- size_t strlen(const char *s);
- void *memcpy(void *s1, const void *s2, size_t n);
- void *memmove(void *s1, const void *s2, size_t n);
- int memcmp(const void *s1, const void *s2, size_t n);
- void *memchr(const void *s, int c, size_t n);
- void *memset(void *s, int c, size_t n);
3 則留言:
這題不是應該t字串比較大嗎
這樣執行結果是負數
應該要回傳t吧
'w' 的 ASCII 值為 119 , 'm' 的 ASCII 值為 109 ,所以兩個字串依序比較到 'w' 及 't' 得出 strcmp(s, t) 回傳正值,故 s 大於 t ,謝謝發問 ^_^
如果我只是想要判斷兩個字串是否相同
如果相同回傳0 不同則回傳-1
要如何寫呢?
張貼留言