检索字符串
這道題不難,但是其中有些細節掌握需要用心,注釋比較完備。
1 char str1[80]; 2 char str2[80]; 3 int i = 0,j = 0,k; 4 int count =0,c = 0; 5 printf("請輸入源字符串:"); 6 gets(str1); 7 printf("請輸入需要查找的字符串"); 8 gets(str2); 9 //從源字符串的第一個字符開始查找 10 for(i=0;str1[i];i++) 11 { 12 //如果剩余字符串的長度小于查找字符串則終止循環 13 if(strlen(str1) - i <strlen(str2)) 14 { 15 break; 16 } 17 else 18 { 19 //如果源字符的第i個字符等于查找字符的第一個字符 20 if(str1[i] == str2[j] || str2[j] == '?') 21 { 22 //取當前i位置字符,循環查找等于查找字符長度 23 for(j = 0,k = i;str2[j];j++,k++) 24 { 25 //如果字符符合 26 if(str1[k] == str2[j] ||str2[j] =='?') 27 { 28 count++; 29 } 30 } 31 //如果相同字符等于查找字符長度,則計數 32 if(count == strlen(str2)) 33 { 34 c++; 35 } 36 } 37 //重置變量 38 count =0; 39 j=0; 40 } 41 } 42 printf("%d",c); 43 system("Pause"); 44 return 0;
1 char str1[80]; 2 char str2[80]; 3 int i = 0,j = 0,k; 4 int count =0,c = 0; 5 printf("請輸入源字符串:"); 6 gets(str1); 7 printf("請輸入需要查找的字符串"); 8 gets(str2); 9 //從源字符串的第一個字符開始查找 10 for(i=0;str1[i];i++) 11 { 12 //如果剩余字符串的長度小于查找字符串則終止循環 13 if(strlen(str1) - i <strlen(str2)) 14 { 15 break; 16 } 17 else 18 { 19 //如果源字符的第i個字符等于查找字符的第一個字符 20 if(str1[i] == str2[j] || str2[j] == '?') 21 { 22 //取當前i位置字符,循環查找等于查找字符長度 23 for(j = 0,k = i;str2[j];j++,k++) 24 { 25 //如果字符符合 26 if(str1[k] == str2[j] ||str2[j] =='?') 27 { 28 count++; 29 } 30 } 31 //如果相同字符等于查找字符長度,則計數 32 if(count == strlen(str2)) 33 { 34 c++; 35 } 36 } 37 //重置變量 38 count =0; 39 j=0; 40 } 41 } 42 printf("%d",c); 43 system("Pause"); 44 return 0;
?
轉載于:https://www.cnblogs.com/baikequanshu/p/3372694.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
- 上一篇: Java 并发——多线程基础
- 下一篇: 解决编译apache出现的问题:conf