C语言问题:寻找字符串中最长的单词并输出(将非字母字符看做单词分隔符)

来源:360问答  责任编辑:小易  

1234567891011121314151617#include <stdio.h>#include "string.h"int main(int argc,char *argv[]){    char s[100],t[100]="",x[100]="",i,n,ln;    printf("Input a string...");    ln=strlen(gets(s));    for(i=0;i<ln;i++){        n=0;        sscanf(s+i,"%[0-9.]%n",t,&n);        if(strlen(t)>strlen(x))            strcpy(x,t);        if(n)            i+=n-1;    }    printf("The result is %s",*x ? x : """");    return 0;}www.zgxue.com防采集请勿采集本网。

题目内容:

寻找字符串中最长的单词并输出(将非字母字符看做单词分隔符)输入格式:

这一行写错了,p1前要加个*号: printf("%c",p1++); 要改成 printf("%c& i++) { if (s[i]==' ') // 如果当前字符为空格,则比较当前单词长度是否大于最大

整个字符串(长度<150)输出格式:

一般情况为空格和标点符号,根据题目情况来确定标点符号是否算在单词中。 假定单词 并将其长度赋值给max5、重复2-4,直到读单词结束(到字符串尾)。6、输出最长单词长度

最长的单词输入样例:

// place 最长字符串的起始位置, maxlength是长度, // 缺点是只给出第一个最大字符串 最大的字符串是:"); for(int ii = 0; ii<maxlength; ii++) printf("%c", st

I have a pencil.输出样例:

// place 最长字符串的起始位置, maxlength是长度, // 缺点是只给出第一个最大字符串 最大的字符串是:"); for(int ii = 0; ii<maxlength; ii++) printf("%c", s

pencil

最长的单词为:\n\n"); for(i=longest(str);word(str[i]);i++) printf("%c //将单词长度保存下来 max_point=point;//将最长单词的第一个英文字母在字符串中的位

简单的程序参考:

一般情况为空格和标点符号,根据题目情况来确定标点符号是否算在单词中。 假定单词 并将其长度赋值给max 5、重复2-4,直到读单词结束(到字符串尾)。 6、输出最长单词长

#include <stdio.h>

=='\\0')) // 如果当前字符为空格或结束,则比较当前单词长度是否大于最大值 while (*p2 && *p2!=' ')  printf("%c&quo

#include <string.h>

printf("最长的子串长度为%d个字符,该子串为:",lenth);//打印子串长度 for(i = flag;i < flag + lenth;i++)//打印子串,下标从flag到flag + lenth - 1 printf("%c",c[i

int main()

return 0; } 另外这个题目也是的,什么叫“将此字符串中最长的单词输出”,万一有N个最长的单词怎么办?是都输出呢?还是只输出第一个?还是最后一个?都没有说清楚啊

{

    char s[151],a[100];

最后一个单词是最长的情况没有考虑到,在longest函数的for循环结束之后判断一下最后 );i++)        printf("%c",line

    int i,maxlen;

#include<stdio.h> int maxword(char *s); int main() { int m,i; char a[1000]; printf("input your words:"); gets(a); m=maxword(a); printf("the longest wo

    char *p;

#include <stdio.h> int main() { int i,j; int b[10] = {0}; char a[100]; int count ; int max; gets(a); for(i = 0 ; a[i];i++) { count = 0; for(j = i; a[j] == a[i]&&a[j];

    gets(s);

!='\\0') { if(s[i]!=' ') t++; if((s[i]==' ')||(s[i+1]=='\\0')) { if(t&gt;r) r=t; t=0; } i++; } return r; }<p></p> <p>我改了下,可一达到楼主的要求了,还有问题可以追

    p = strtok(s, " ");

    i++;    }    return r;}图" class="ikqb_img_alink">我改达楼主要求问题追问

    maxlen=strlen(p);

    do

        {

            if(maxlen<strlen(p))

                {

                    maxlen=strlen(p);

                    strcpy(a,p);

                }

        }

    while((p = strtok(NULL, " ."))!=NULL);

    printf("%s\n",a);

    return 0;

}

例样测试结果

#include <stdio.h>#include <string.h>//用于判断字符是否是英文字节int word(char c){if((c>='a'&&c<='z')||(c>='A'&&c<='Z')) return 1;else return 0;}int longest(char str[]) {int i,flag=1,len=0,point,max_len=0,max_point;//遍历字符for(i=0;i<=strlen(str);i++){//判断是否为英文if(word(str[i]))     {if(flag==1)       {//单词第一个找到后改变标志point=i;       flag=0;}else len++;      //开始对这个单词长度进行累加}else           //非英文字母{//等待第一个英文字母的出现//所以flag=1(要是下一个是英文字母的话就能执行上面的if)flag=1;       //之前累加的单词长度是否比上一个单词更长//(第一次的话max_len初始化为0,len必大于max_len)if(len>max_len){//将单词长度保存下来max_len=len;//将最长单词的第一个英文字母在字符串中的位置保存下来max_point=point;}len=0;}}return (max_point);}int main(){int word(char c);int longest(char str[]);int i;char str[80];printf("输入一行字符串\n\n");gets(str);printf("\n\n最长的单词为:\n\n");for(i=longest(str);word(str[i]);i++)printf("%c",str[i]);printf("\n");return 0;}内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • C语言输出一行字符串中最长的单词
  • 怎么寻找字符串中最长的数字字符串 C语言
  • c语言编程问题,找出字符串中最长单词
  • c语言题目:输入一个字符串,查找最长的等值子串
  • 一道c语言编程题,寻找字符串最长的单词并输出
  • C语言用函数求字符串中最长单词.
  • c语言:求字符串中最长单词的题目
  • c语言:求字符串中最长单词的题目
  • c语言输入一行字符将此字符串中最长的单词输出
  • C语言 在字符串中找到最长单词
  • c语言找到字符串中最长的单词
  • 用c语言,怎么输出字符串中最长的单词
  • C语言:输入一行字符,将此字符串中最长的单词输出。请高手按...
  • @C语言大神:求出字符串中最长单词。结果不对?
  • C语言问题.编写一个函数,求一个字符串中最长的单词
  • c语言求字符串中最长的连续相同数字以及他的长度,如果有多个...
  • C语言问题.编写一个函数,求一个字符串中最长的单词
  • C语言问题.编写一个函数,求一个字符串中最长的单词
  • C语言 :写一个函数 输入一行字符 将此字符串中最长的单词输出
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved