㈠ 字元串匹配問題(c語言)
說說我的思路吧。思路清楚了寫起來很簡單。
首先判斷循環次數為str1的長度。for(i = 0 ; i < strlen(str1) i++).通過循環長度查找與str2匹配的字元串。
從str1的第一個字元開始進行比較,裡面是個小循環,for(j = 0 ; j < strlen(str2) ;j++);比較從str1開始的str2字元串的長度。如果不相等,從str1的第二個字元串開始比較,如果相等則把str3的字元替換到str1的匹配字元中去,並讓循環i+strlen(str2)-1;以此類推即可實現所有的變換
㈡ C語言怎麼實現字元串的匹配
p=="delete"要改成用strcmp(p, "delete") == 0 來進行字元串匹配。
你的寫法是判斷兩個指針地址是否相等,而不是指針指向的內容相同。
p和"delete"的地址原本就不相等,一個指向了棧上分配了10個位元組的空間,空間的內容是"delete",另一個指向了常量區的"delete"。
請採納,謝謝
㈢ C語言 字元串匹配
#include<stdio.h>
constcharkey[][12]={"happy","new","year","2014"};
//是否完全匹配某一個特定的key
intmatch1(constchar*s,constchar*t)
{
while(*s&&*t&&*s++==*t++);
return!(*s||*t);
}
//是否匹配一組key的中一個
intmatch(constchar*s)
{
inti,j;
for(i=0;i<sizeofkey/sizeofkey[0];i++)
if(match1(s,key[i]))
{
//如果匹配到某個key,則列印匹配到的key
for(j=0;key[i][j];j++)putchar(key[i][j]);
putchar(' ');
return1;
}
return0;
}
intmain()
{
chars[BUFSIZ];
inti,k;
//輸入一個字元串
for(i=0;i<BUFSIZ&&(s[i]=getchar())!=' ';i++);
s[i]='