练习2-4:重新编写函数squeeze(s1,s2),将字符串s1中的任何字符与字符串时s2中的字符匹配的字符都删除
生活随笔
收集整理的這篇文章主要介紹了
练习2-4:重新编写函数squeeze(s1,s2),将字符串s1中的任何字符与字符串时s2中的字符匹配的字符都删除
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
#include <stdio.h>
void squeeze(char s1[], char s2[]);
int main(){/*練習(xí)2-4:重新編寫函數(shù)squeeze(s1,s2),將字符串s1中的任何字符與字符串時s2中的字符匹配的字符都刪除思路:可采用雙重for循環(huán)刪除 */char s1[] = "aoctf";char s2[] = "chkf";squeeze(s1,s2);printf("%s",s1);return 0;
}
/**
錯誤示例:此處并未將s2中最后一個字符('\0'之前的一個字符)作對比。
*/
void squeeze(char s1[], char s2[]){int i,j;for (i=j=0; s1[i] != '\0'; i++) {for(int n=0; s2[n] != '\0' && s1[i] != s2[n]; n++){if(s2[n+1] == '\0'){s1[j++] = s1[i];} }}
}
/**
standard answer
*/
void squeeze(char s1[], char s2[]){int i,j,k;for (i = k= 0; s1[i] != '\0'; i++){for (j = 0; s2[j] != '\0' && s2[j] != s1[i]; j++)//對s2字符數(shù)組進行遍歷,當(dāng)s2中沒有與s1中匹配的字符時,遍歷到字符尾部,此時s2[j]='\0' ;if (s2[j] == '\0'){s1[k++] = s1[i];//將s1中有的字符,s2中沒有的字符存入s1[k++]中 }}s1[k] = '\0';}
輸出結(jié)果:
aot
總結(jié)
以上是生活随笔為你收集整理的练习2-4:重新编写函数squeeze(s1,s2),将字符串s1中的任何字符与字符串时s2中的字符匹配的字符都删除的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 巴贝奇、阿达和他们的差分机
- 下一篇: 01005封装的优缺点