纪念瑞格崩盘——字符串分割问题

纪念瑞格崩盘——字符串分割问题

关于考试

今天考试真的是离谱,考着考着瑞格崩溃了,我一个题目也没有交上去,吓死我了,还好重新考,这次考试我觉得难度说小肯定算不上去了,题目我没有全部看完。一共六个题目,我看了几个吧

  1. 链表合并(这个题目没有数据结构里面的难,很水,就在一个链表尾巴上把另一个链表接上,好像是)
  2. 结构体链表(没什么可说的,按思路来就行,就是链表里面的数据换成了结构体)
  3. 一个二维数组问题,求和,删去最后一行和一列,而且最后删除反对角线上面元素。只有一点要注意,这三个定义里面有重复元素
  4. 链表题目(把一个链表的最大值结点,移动到头节点后面,也比较容易,找出来,然后保留数据,删除,从新开辟一个结点连接到头节点后面)
  5. 字符串分割,给你一个字符串(包含空格,逗号和,句号)
    然后求什么一个值,我给忘记了,哈哈哈哈,不过我记得要求最长的单词
  6. 结构体数组,统计投票,也算是送分题把

看了5题,就字符串老分割出问题,我得痛

最后调试了半天写出来一个健壮性比较强的,基本数据测试无问题。累死我了

#include <stdio.h>
#include <string.h>
#define N 1005

char s[100][100];

void solve(char *p)
{
	int cnt=0;
	bool flag=0;
    char temp[100]={'\0'};
    int i=0;
    int x=0;
	while(*p!='\0')
	{
		if(*p>='a'&&*p<='z'||*p>='A'&&*p<='Z')
		{
			temp[i]=*p;
            i++;
            temp[i]='\0';
			flag=1;
		}
		else if(flag)
		{
            strcpy(s[cnt],temp);
            i=0;
			cnt++;
			flag=0;
            x=0;
            while(temp[x]!='\0')
            {
                temp[x]='\0';
                x++;
            }
		}
		++p;
	}
    if(temp[i-1]>='a'&&temp[i-1]<='z'||temp[i-1]>='A'&&temp[i-1]<='Z')
    {
        cnt++;
        strcpy(s[cnt-1],temp);
    }
	if(cnt)
        printf("\n分出了%d个单词\n",cnt);
    int max=0;
    int len=0;
    for(i=0;i<cnt;i++)
    {
        len=strlen(s[i]);
        if(len>max)
            max=len;
    }
    for(i=0;i<cnt;i++)
    {
        len=strlen(s[i]);
        if(len==max)
            printf("%s\n", s[i]);
    }

} 
int main()
{
	int n;
	char str[N];
	char *p=str;
	gets(p);
    solve(p);
	return 0;
} 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值