如何用c语言实现一个字符串包含另一个字符串的所有字符

在C语言中,可以通过遍历两个字符串的字符,逐个比较的方式来判断一个字符串是否包含另一个字符串的所有字符。以下是一个简单的例子,演示如何实现这个功能:
cCopy code#include <stdio.h>#include <stdbool.h>#include <string.h>// 函数声明bool containsAllChars(const char* str1, const char* str2);int main() { // 测试字符串
const char* string1 = "abcdef"; const char* string2 = "abc"; // 调用函数检查字符串包含关系
if (containsAllChars(string1, string2)) { printf("%s 包含 %s 的所有字符\n", string1, string2);
} else { printf("%s 不包含 %s 的所有字符\n", string1, string2);
} return 0;
}// 函数定义bool containsAllChars(const char* str1, const char* str2) { int len1 = strlen(str1); int len2 = strlen(str2); // 如果str2为空字符串,则认为它包含在任何字符串中
if (len2 == 0) { return true;
} // 使用嵌套循环逐个比较字符
for (int i = 0; i < len1; i++) { if (str1[i] == str2[0]) { int j; for (j = 1; j < len2 && (i + j) < len1; j++) { if (str1[i + j] != str2[j]) { break;
}
} // 如果j等于len2,说明找到了str2的所有字符
if (j == len2) { return true;
}
}
} // 未找到str2的所有字符
return false;
}

上述代码定义了一个名为 containsAllChars 的函数,该函数接受两个字符串作为参数,并返回一个布尔值,指示第一个字符串是否包含第二个字符串的所有字符。在 main 函数中,我们使用这个函数来测试字符串包含的关系。这只是一个简单的示例,实际应用中可能需要更复杂的实现,具体取决于要处理的字符串和需求。

如果“一个字符串”全部是英文字符的话,只要开一个char
s[128];的哈希表,每个在其中出现的字符按它的ASCII值,将相应的元素置为1;
然后扫描“另一个字符串”,检测每一个字符,在数组中对应元素的值是否为1。若这个串里的对应元素值全部为1,则是“包含另一个字符串所有的字符”。
这个算法的时间复杂度为O(n1+n2),n1和n2是二个字符串的长度。
#iclude<stdio.h>
int
main()
{char
s1[200],s2[200],s[128]={0};
//初始化,所有字符均未出现
int
i,k=1;
gets(s1);
gets(s2);
for(i=0;s[i];i++)
s1[s[i]]=1;
//将字符串s1中出现的每一个字符,均“记录在案”
for(i=0;s2[i];i++)
if(!(s[s2[i]]))k=0;
//若s2中有字符在“记录簿”中未出现,就作记录
if(k)printf("s1包含了s2中的全部字符\n");
//根据是否有记录输出相应记录
else
printf("s1未包含s2中的全部字符\n");
return
0;
}

  • C璇█涓鎬庢牱杈撳嚭涓涓瓧绗︿覆鏄惁鍖呭惈鍙︿竴涓瓧绗︿覆鐨
    绛旓細strstr鍑芥暟 鍑芥暟鍚: strstr 鍔 鑳: 鍦ㄤ覆涓煡鎵炬寚瀹瀛楃涓鐨勭涓娆″嚭鐜 鐢 娉: char *strstr(char *str1, char *str2);璇存槑锛氳繑鍥炴寚鍚戠涓娆″嚭鐜皊tr2浣嶇疆鐨勬寚閽堬紝濡傛灉娌℃壘鍒板垯杩斿洖NULL銆傝皟鐢ㄥ嚱鏁,鍒ゆ柇杩斿洖鍊兼槸鍚︾瓑浜嶯ULL,鍐冲畾鏄惁杈撳嚭 濡;char *p=".c"; //闇瑕佺殑瀛愪覆 if(strstr(A,p)) ...
  • 鐢╟璇█鍐涓涓绋嬪簭,瀹炵幇鍦瀛楃涓鐨勫唴閮ㄥ鍔犲瓧绗︿覆
    绛旓細"); //鏄剧ず閿欒鎻愮ず return ;} //缁撴潫鍑芥暟 for(k=i;k>=n;k--) //浠巗1鏈鍚涓涓寮濮嬬洿鍒扮n涓瓧绗渚濇鍚庣Щ s1[k+j]=s1[k]; //鍚庣Щj涓綅缃 for(k=0;k<j;k++) //渚濇鎶妔2鍐呭澶嶅埗鍒皊1鐩稿簲浣嶇疆 s1[k+n]=s2[k];} //瀹屾垚澶嶅埗骞剁粨鏉熷嚱鏁 int ...
  • ...a[],char c),濡傛灉瀛楃涓a涓鍖呭惈瀛楃c杩斿洖鏁板1,鍚﹀垯杩斿洖0
    绛旓細char a[10]="abvdc";//鑷繁璁惧畾鐨勬暟缁 int f(char *p, char c)//鍑芥暟鐨勬纭啓娉 { while (*p){ if(*p=='c') return 1; //鍒ゆ柇鏄惁鏈変綘瀵瑰簲鐨瀛楃 p++;} return 0;} int main()// { int i;i = f(&a[0],'c');//濡傛灉鏈夌殑瀵逛簬鐨勫瓧绗︾殑璇濓紝閭d箞灏辫繑鍥1銆俻rintf("%d",i...
  • 鍦C璇█涓鎬庢牱鍒ゆ柇涓涓瓧绗︿覆涓槸鍚鍖呭惈鍙︿竴涓瓧绗︿覆
    绛旓細濡傛灉鈥涓涓瓧绗︿覆鈥濆叏閮ㄦ槸鑻辨枃瀛楃鐨勮瘽锛屽彧瑕佸紑涓涓猚har s[128];鐨勫搱甯岃〃锛屾瘡涓湪鍏朵腑鍑虹幇鐨勫瓧绗︽寜瀹冪殑ASCII鍊硷紝灏嗙浉搴旂殑鍏冪礌缃负1锛涚劧鍚庢壂鎻忊滃彟涓涓瓧绗︿覆鈥濓紝妫娴嬫瘡涓涓瓧绗︼紝鍦ㄦ暟缁勪腑瀵瑰簲鍏冪礌鐨勫兼槸鍚︿负1銆傝嫢杩欎釜涓查噷鐨勫搴斿厓绱犲煎叏閮ㄤ负1锛屽垯鏄鍖呭惈鍙︿竴涓瓧绗︿覆鎵鏈夌殑瀛楃鈥濄傝繖涓畻娉曠殑...
  • (1)缂栧啓涓涓狢璇█绋嬪簭,鍖呭惈瀛楃涓鍊"Hello World"銆傜▼搴忓皢瀛楃涓蹭腑姣忎釜...
    绛旓細绗竴棰橈細include "stdio.h"void main(){ char String[13]="Hello World";char *pStr=String;printf("涓0寮傛垨锛");while(*pStr != '\0'){ putchar((*pStr)^0);++pStr;} printf("\n涓1寮傛垨锛");pStr=String;while(*pStr != '\0'){ putchar((*pStr)^1);++pStr;} } 绗簩棰...
  • c璇█浠庨敭鐩樹笂杈撳叆涓涓瓧绗︿覆,鍒ゆ柇鏄惁鍚湁#,濡傛灉鍖呭惈,鍒ゆ柇鏄鍑犱釜...
    绛旓細include <stdio.h>int main(){char s[200]; int i,t=0; gets(s); for(i=0;s[i];i++) if(s[i]=='#') {printf("%d\n",i+1); return 0; } if(!t)printf("0\n"); return 0;}
  • c璇█缁熻瀛楃涓涓鍖呭惈绌烘牸,鏁板瓧鐨勪釜鏁般濡備綍鍦ㄥ悗闈㈡樉绀哄綍鍏ュ唴瀹?_鐧惧害...
    绛旓細number++; else others++; } printf("绌烘牸=%d,鏁板瓧=%d,鍏朵粬=%d\n",space,number,--others);}浣犺繖涓昏緫灏卞緢涓嶅濂界殑涔堣屼笖浣犲鏋滆緭鍏har绫诲瀷鐨 灏辫鑰冭檻鎹㈣杩欎釜瀛楃 灏戣皥鎭嬬埍 涓旇涓旂弽鎯
  • 鍦c璇█涓,濡備綍浠庨敭鐩樿緭鍏ヤ竴涓插寘鍚鏁板瓧鍜屽瓧姣嶇殑瀛楃涓,浠ヨ繛缁殑鏁板瓧鏋...
    绛旓細include<stdio.h> int main(){ char c[200] = {'\0'};scanf("%s",c);int i;int sum = 0;char max = '\0';for(i = 0; i < 200; i++){ char buf = c[i];int j;int k = 0;for(j = i; j < 200; j++){ if(c[j] == '\0')break;if(buf == c[j])k++...
  • 鍐涓涓猚璇█绋嬪簭鍒ゆ柇涓涓瓧绗︿覆2鏄惁鍖呭惈浜庡瓧绗︿覆1
    绛旓細;printf("%d\n",search(s1,s2));system("pause");} int search(char s1[],char s2[]){int i=0,j,len=strlen(s2);while(s1[i]){ for(j=0;j<len;j++)if(s1[i+j]!=s2[j]) break;if(j>=len)return i;else i++;} return -1;} 濡傛灉瑙e喅浣犵殑闂缁欎釜鏈浣崇瓟妗堝憲璋㈣阿 ...
  • 鍦c璇█涓,濡備綍浠庨敭鐩樿緭鍏ヤ竴涓插寘鍚鏁板瓧鍜屽瓧姣嶇殑瀛楃涓,浠ヨ繛缁殑鏁板瓧鏋...
    绛旓細include<stdio.h>#include<string.h>#include<stdlib.h>#define INI20#define INC 10char* input;//鎸囧悜鍔ㄦ佹暟缁刬nt get_input();//鐢ㄤ簬鎺ユ敹杈撳叆鍊肩殑鍑芥暟锛屼娇鐢ㄥ姩鎬佹暟缁勫彲浠ヤ换鎰忚緭鍏ワ紝鏃犲ぇ灏忛檺鍒秜oid ini();//绯荤粺鍒濆鍖朾ool is_exit();//妫娴嬫槸鍚﹂鍑篿nt split();//灏瀛楃涓鍒嗚В鍑6浣嶇殑鏁板瓧...
  • 扩展阅读:字符串存入数组c语言 ... c语言字符拼接在一起 ... 两个字符串的连接起来 ... c需要字符串拼接 ... 怎样输入一个字符串 ... c语言实现字符串分割 ... 截取字符串的三种方法 ... c语言实现字符串替换 ... c语言怎么输入多个字符串 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网