文章

36

粉丝

0

获赞

5

访问

22.0k

头像
字符串排序2 题解:为什么用gets就会报错呢 用fgets就没问题
P1255 北京大学机试题
发布于2024年3月8日 14:39
阅读数 629

#include <stdio.h>
#include <stdbool.h>
#include <math.h>
#include <string.h>
#include <ctype.h>

int main(void){
    char string[10000],temp,s[10000];
    int j,t=0,count=0;
    while(fgets(string,sizeof(string), stdin)){
        for(int i=0;i<strlen(string);i++){      //遍历每一个字符
            if((string[i]>='a'&&string[i]<='z')||(string[i]>='A'&&string[i]<='Z')) s[count++]=string[i];
        }
        for(int i=1;i<strlen(s);i++){
            if(tolower(s[i])<tolower(s[i-1])){
                temp = s[i];
                for(j=i-1;j>=0&&tolower(s[j])>tolower(temp);j--){
                    s[j+1] = s[j];
                }
                s[j+1] = temp;
            }
        }
        for(int i=0;i<strlen(string);i++){
            if((string[i]>='a'&&string[i]<='z')||(string[i]>='A'&&string[i]<='Z')){
                string[i] = s[t++];
           ...
登录查看完整内容


登录后发布评论

4 条评论
snake VIP
2024年3月8日 16:03

不会啊,我看很多同学AC的代码用的是gets

赞(0)

williams : 回复 snake: 我这份代码是fgets ac了,把while换成里面换成gets(string)!=EOF 过不了,我也不知道为啥 可能是越界了。。

2024年3月8日 16:44

snake : 回复 williams: 用gets就不加!=EOF

2024年3月8日 16:48

williams : 回复 snake: 学到了哥

2024年3月9日 08:21