#include #include #include int main(){ // 若輸入含有\n的話 使用此函數移除\n // 將原先\n的位置替換為\0 name[strcspn(name, "\n")] = '\0'; // strlen() - 計算字串長度 char str[] = "Hello"; int length = strlen(str); // 結果為 5 printf("strlen(Hello) = %d\n",length); // strcpy() - 複製字串 char dest[50]; char src[] = "Hello"; strcpy(dest, src); // dest 現在包含 "Hello" printf("strcpy(dest, Hello) => dest = %s\n",dest); // strcat() - 連接字串 char str1[50] = "Hello "; char str2[] = "World"; strcat(str1, str2); // str1 現在是 "Hello World" printf("strcat(str1 = Hello, str2 = World) => str1 = %s\n",str1); // strcmp() - 比較字串 char str3[] = "Hello"; char str4[] = "Hello"; int result = strcmp(str3, str4); // 相同回傳 0,str1 大於 str2 回傳正數,小於回傳負數 printf("strcmp(Hello, Hello) = %d\n",result); // strchr() - 尋找字元在字串中第一次出現的位置 char str5[] = "Hello"; char *p1 = strchr(str5 , 'l'); // 指向第一個 'l' 的位置 printf("strchr(Hello, 'l') = %p\n",*p1); // strstr() - 尋找子字串在字串中第一次出現的位置 char str6[] = "Hello World HELLO"; char *p2 = strstr(str6, "World"); // 指向 "World" 開始的位置 // char *p3 = strstr(NULL, " "); printf("strstr(str6, World) = %d\n",p2 - str6 ); // printf("strstr(, HELLO) = %d\n",p3 - str6 ); // strchr函式的實際應用 // 函數原型:char *strchr(const char *str, int c) // 功能:在字串中尋找指定字元第一次出現的位置 // 返回值: // // 若找到字元,返回該字元的指針 // 若沒找到,返回 NULL // // 注意:第二個參數雖然是 int 類型,但實際上會被轉換成 char 來搜尋 // char str[] = "programming"; // char *p; // // 尋找字母 'g' // p = strchr(str, 'g'); // if (p != NULL) { // printf("找到 'g' 的位置: %ld\n", p - str); // 輸出:3 // printf("從該位置到結尾的子字串: %s\n", p); // 輸出:gramming // } // // // 尋找所有 'm' 的位置 // char *temp = str; // while ((temp = strchr(temp, 'm')) != NULL) { // printf("找到 'm' 的位置: %ld\n", temp - str); // temp++; // 移到下一個位置繼續搜尋 // } // // // 尋找不存在的字元 // p = strchr(str, 'z'); // if (p == NULL) { // printf("找不到字元 'z'\n"); // } // strstr() 函數 // 函數原型:char *strstr(const char *haystack, const char *needle) // 功能:在主字串(haystack)中尋找子字串(needle)第一次出現的位置 // 返回值: // // 若找到子字串,返回子字串首次出現位置的指針 // 若沒找到,返回 NULL // // 注意:區分大小寫 // char str[] = "This is a simple example of strstr function"; // char *p; // // // 基本搜尋 // p = strstr(str, "simple"); // if (p != NULL) { // printf("找到子字串的位置: %ld\n", p - str); // 輸出:10 // printf("從該位置到結尾的文字: %s\n", p); // 輸出:simple example of strstr function // } // // // 搜尋重複出現的子字串 // char text[] = "hello hello hello"; // char *temp = text; // while ((temp = strstr(temp, "hello")) != NULL) { // printf("找到 'hello' 的位置: %ld\n", temp - text); // temp++; // 移到下一個位置繼續搜尋 // } // // // 搜尋空字串 // p = strstr(str, ""); // if (p != NULL) { // printf("空字串匹配原字串起始位置\n"); // 會匹配到起始位置 // } // // // 區分大小寫的範例 // p = strstr(str, "SIMPLE"); // 不會找到,因為大小寫不同 // if (p == NULL) { // printf("找不到 'SIMPLE',因為是區分大小寫的\n"); // } return 0; }