输入一堆单词,单词之间用空格分开,输出最长的且含a的字符串

//输入一堆单词,单词之间用空格分开,输出最长的且含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;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值