编程在一个已知的字符串中查找最长单词,假定字符串中只含字母和空 格,用空格来分隔单词。

来源:互联网 发布:c 并发编程指南 编辑:程序博客网 时间:2024/04/25 20:40
    <span style="font-size:24px;">printf("请输入一行字符串:\n");    char  str[] = "sdjfias jidosafn jionassf jiinfdan jijinasnf jijsoafdi jioasdfn jaoisndfi ";    gets(str);    unsigned long count = strlen(str);    printf("字符串长度%lu\n",count);//字符串长度    int quantity = 0;//用来存储单词数量    for (int i = 0; i < count; i++) {        if (str[i] == ' ') {            quantity += 1;        }    }     printf("原字符串有%d个单词\n",quantity);//得出原字符串有几个单词    int b[10000] = {0},a = 1,c[10000] = {0},d = 0;    for (int i = 0; i < count; i++) {        if (str[i] == ' ') {            b[a] = i;            printf("%d ",b[a]);            a++;        }    }printf("\n");    //记录空格的位置    for (int j = 0; j < quantity; j++) {         b[0] = 0;        c[d] = b[j + 1] - b[j] - 1;        printf("%d ",c[d]);        d++;    }printf("\n");    //记录每个单词的长度    int max = 0;//用来接受单词长度的最大值    for (int k = 0; k < quantity - 1; k++) {        if (c[k] > max) {            max = c[k];        }    }printf("最长单词长度为%d ",max);     printf("\n");    //找出单词长度最大的那个    int e = 0,f = 0;    for (int i = 0; i < count; i++) {        if (b[i + 1] - b[i] - 1 == max ) {            e = b[i];            f = b[i + 1];            for (int i = e + 1;i < f; i++) {                printf("%c",str[i]);            }            printf("\n");        }    }//输出单词长度最大的单词</span>

0 0
原创粉丝点击