//输入一堆单词,单词之间用空格分开,输出最长的且含a的字符串
#include<stdio.h>
#include<string.h>
char s[]={0}; //全局变量
int main(){
char * p = NULL; //分配一块内存,这块内存的名字是p,内存中存放的是一个指向char型数据的地址,但是这个地址目前是NULL,也就是没有存放任何char型数据的地址。
char token[10000] = {0};
char result[100][10000] = {0};//字符数组
int sum=0;//相同最长带a字符串个数-1(和下标同步,注意少1)
gets(s); //输入字符串
p=strtok(s, " "); //strtok:分解字符串为一组字符串。s为要分解的字符串," "为分隔符 ,并放在p中
while(p)
{
strcpy(token, p);
if(strchr(token, 'a') && strlen(token)>strlen(result[0])){//和字符串数组内下标为0的字符串进行比较,这里是比他长的情况
memset(result,0,sizeof(result));//进行字符串数组清空
strcpy(result[0],token);//复制
sum=0;//初始化
}
else if(strchr(token, 'a') && strlen(token)==strlen(result[0])){//长度相等的情况
sum++;//计数
strcpy(result[sum],token);//复制
}
p=strtok(NULL, " ");
}
if(strlen(result[0])==0) //无a情况
printf("I can't find any string with 'a' in it.\n");
else
for(int i=0;i<=sum;i++){//对数据进行输出
printf("%s ",result[i]);
}
return 0;
}
输入一堆单词,单词之间用空格分开,输出最长的且含a的字符串
最新推荐文章于 2023-04-25 20:18:22 发布