G帅T 2023-02-21 09:42 采纳率: 75.3%
浏览 47
已结题

c语言数组有关字符串的问题

img


为什么说我这个是无效数组排列?数组不能和变量一样吗?传递变量值?如何解决呢

img


我编的代码是为了解决练一练的题目,我看题想的上面的代码

  • 写回答

4条回答 默认 最新

  • a5156520 2023-02-21 10:02
    关注

    下面是我的理解,供参考:

    1、因为字符数组名是不可变的,所以对其赋值是错误的,如果要复制字符数组里面的字符,可以使用strcpy()函数;

    2、然后,使用scanf()函数获取字符串使用逗号分隔会让正确获取输入变得比较复杂,因为scanf()获取字符串默认以空白字符(即空格,制表符,或换行符)分隔字符串,所以可以改为两个%s之间加个空格或不加也可以;

    3、再是,打印字符数组里面的字符串,需要使用%s.

    4、最后,在while最后再加个scanf(),获取下次需要比较的字符串到数组str1和str2中。

    修改如下:

    参考链接:



    #include <stdio.h>
    #include <string.h>
    
    int main(void){
        
        int k;
        printf("输入两个字符串:");
        char str1[30],str2[30],str3[30];
        
        //  https://baike.baidu.com/item/scanf/10773316?fr=aladdin
        scanf("%s %s",str1,str2);  //在scanf()获取字符串不需要使用逗号分隔 
    //    printf("s1=%s --- s2=%s\n",str1,str2); 
        
        while(1){
            
            k=strcmp(str1,str2);
            if(k>0){
            // // https://blog.csdn.net/weixin_63279307/article/details/128412296    
                printf("%s %s\n",str1,str2);  // 打印字符数组里的字符串使用%s即可 
            }else if(k<0){
    
    
    //https://www.hyluz.cn/post/506.html
    // https://baike.baidu.com/item/strcpy/5494519?fr=aladdin            
                strcpy(str3,str1); // 复制str1中的字符串到str3中 
                strcpy(str1,str2); // 复制str2中的字符串到str2中 
                strcpy(str2,str3); // 复制str3中的字符串到str2中 
    
    
                printf("%s %s\n",str1,str2);
            }else if(k==0){
                printf("请输入两个不同大小的字符串:"); 
            }
            scanf("%s %s",str1,str2);  // 获取下次需要比较的字符串到字符数组str1和str2中 
        //    printf("s1=%s -- s2=%s\n",str1,str2); 
        } 
        
        return 0;
    } 
    
    

    img

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
    G帅T 2023-02-21 13:46

    我出现了死循环

    回复
    G帅T 2023-02-21 14:01

    我一开始没在最后的printf后面加个scanf就会出现死循环

    回复
    G帅T 2023-02-21 14:12

    我如果不按照你说的再加个scanf就会死循环

    回复
    展开全部5条评论
查看更多回答(3条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 2月28日
  • 已采纳回答 2月21日
  • 创建了问题 2月21日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部