求一个关于字符串的c语言编程题目,谢谢

发布网友 发布时间:2022-04-24 06:02

我来回答

1个回答

热心网友 时间:2023-10-05 13:17

#include <stdio.h>
#include <stdlib.h>

int main()
{
    char str[1000];
    gets(str); //默认输入中没有换行,按行输入所有字符
    int i,j,max; 
    for (i = 0 ; i < strlen(str) ; ++i){
        if ( str[i] >= '0' && str[i] <= '9' ){ //读到一个数字后就假设其后还有数字并寻找最大的数值,存入max,直到数字结束
            max = str[i++] - '0';
            while (1){
                if ( str[i] >= '0' && str[i] <= '9' && i < strlen(str) ){
                    max = (str[i] - '0')>max?(str[i]-'0'):max;
                    i++;
                }
                else
                    break;
            }
            while (1){    //数字结束后从后一个字符开始找大写字母
                if (i < strlen(str)){  //防止数组越界
                    if ( str[i] >= 'A' && str[i] <= 'Z' ){ //找到大写字母后开始输出
                        printf("%c",str[i++]);
                        for (j = 1 ; j < max ; ++j){ //输出字符数大于max或遇到其它字符时停止,并换行
                            if (str[i] >= 'a' && str[i] <= 'z' ){
                                printf("%c",str[i++]);
                            }
                            else{
                                printf("\n");
                                break;
                            }
                        }
                        if ( j == max ) printf("\n");
                    }
                    else if ( str[i] >= '0' && str[i] <= '9' )
                        break;
                    else
                        i++;
                }
                else
                    break;
            }
        }
    }
    return 0;
}


也不是完全理解你的意思,但至少样例能跑出来。这段代码建立在这样的基础上:

(1) 输入的字符串没有换行符;

(2) 发现一个大写字母后输出的是它之后的从a~z的字母,不包含其它。


你可以根据你的意思跑点例子,发现问题再告诉我,可以改,有问题可追问。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com