#include <stdio.h> #include <string.h> main() { char * str = "abcdefgh"; char *pattern = "ku"; char substr[100];//char型数据如果没有赋初值 默认值是0 不论是否是函数内还是全局变量 //char数组也是如此 默认元素都是0 //int数组和int一样 如果是在函数外定义的(也就是全局变量) 不初始化会有默认值0 //但是int 以及 int数组 在函数中定义 是没有默认值的 它会是一个随机值s int arr[100]={1};//这里是将第一个元素初始化为1 且其它元素初始化为0 //所以想要在定义int数组时 所有元素全部初始化为0 int arr[100]={0} int i=0; for (i = 0; str[i] != '\0'; i++) {//枚举字符串 //以a开头 b开头 c开头... int j = i; for (j = i; str[j] != '\0'; j++) {//a开头的字串又有不同长度 ab abc abcd... //截取字串 将新的子串放入到substr中 initStr(substr,100); //i是开头 //j是末位 int k; int index=0; for(index=0,k=i;k<=j;k++,index++){ substr[index]=str[k]; printf("%c",substr[index]); if(strcmp(substr,pattern)==0){ printf("\n-----\n"); } } substr[++index]='\0'; printf("\n"); } } } void initStr(char substr[],int n){ int i=0; for(;i<n;i++){ substr[i]=0; } }