为喵方正 2021-11-22 15:34 采纳率: 50%
浏览 1476
已结题

C++获取字符串中的最长单词

编写程序,求出所给出的字符串中最长的字母字串(以非字母隔开),例如,字符串”Apple$12pear watermelon $ # Banana“中最长的字母字串为"watermelon".

答:

#include<iostream>
#include<cstring>
#include<numeric>

using namespace std;

int main()
{
    ios::sync_with_stdio(false);//不用管
    cin.tie(nullptr);            //不用管

    int n = 0;
    int maxlen = 0;
    char t[100];
    char max[100];
    char s[100];
    cin.getline(s, 100);
    for (int i = 0; s[i-1]; i++)//当遍历到最后一项时如果也是字母 判断条件为s[i]则不会考虑最后一串单词。
    {                            //判断条件为s[i-1]时 可以遍历到'\0'所以会考虑最后一串单词。
        if (isalpha(s[i]))//isalpha()判断字符是否为字母 不是则返回0 头文件为numeric
        {
            t[n++] = s[i];
        }
        else
        {
            if (maxlen < n)
            {    
                int i;
                maxlen = n;
                for ( i = 0; i < n; i++)
                {
                    max[i] = t[i];
                }
                max[i] = '\0';//最长单词字符数组末尾加上'\0'
            }
            n = 0;//抽取一个单词后 不管长度是否比上一个单词大 临时储存的t字符数组的下标
                //都要初始化为0 .
        }
    }
    cout << max << endl;
    return 0;
}

  • 写回答

1条回答 默认 最新

  • bostonAlen 2021-11-22 15:40
    关注
    #include <iostream>
    #include <cstring>
    using namespace std;
     
    int main() {
        char s[512], *p = s, t[512], m[512];
        int len=0, max=0;
        gets(s);
     
        do {
            if ((*p>='a' && *p<='z') || (*p>='A' && *p<='Z')) {
                t[len++] = *p;
            } else {
                if (len>max) {
                    t[len] = 0;
                    strcpy(m, t);
                    max = len;
                }
                len = 0;
            }
            p++;
        } while (*p!=0);
        if (len>max) {
            t[len] = 0;
            strcpy(m, t);
            max = len;
        }
     
        cout <<"-------------------" << endl;
        cout << m << endl;
        cout <<"-------------------" << endl;
     
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月28日
  • 已采纳回答 11月28日
  • 创建了问题 11月22日

悬赏问题

  • ¥15 调用函数时,无关变量的改变引起函数值的改变
  • ¥15 xy坐标转化为经纬度坐标
  • ¥15 一般三角模糊数的上界值和下届值取中值的多少比较合理?
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥20 Hbase启动失败,无法启动HMaster
  • ¥15 sqpingboot在父模块已经引入了mybatisplus 在子组件不写版本号还是报错
  • ¥20 Lumerical FDTD solutions 中模型的相对阻抗,有效介电常数和有效磁导率的实部和虚部的数据如何获得?
  • ¥100 sql reporting service 远程smtp服务器配置支持
  • ¥15 ppyoloe_r带角度目标检测,loss_cls没法收敛
  • ¥15 淘宝交易指数如何解读,其关联的数据指标是什么