佐佐人登山 2021-11-08 17:36 采纳率: 66.7%
浏览 91
已结题

C语言按字符串处理字符数组

1、定义大小都为100的5个字符数组s、s1、s2、s3和s4,按字符串方式将字符数组s初始化为“Hello WoRlD!”;将s1、s2、s3和s4均初始化为’\0’。

2、使用scanf函数和%s格式从键盘向字符数组s1中输入一串由字母、数字符号混合组成的文字串。运用while循环或for循环语句以及字符串结束标志’\0’,判断s1中各字符,将其中的数字字符依次保存到数组s2中,将非数字字符保存到s3中。按字符串方式(使用%s格式)输出s1,使用函数puts输出s2和s3,要求每个字符串输出在不同的行。

3、使用scanf函数、%c格式和循环语句从键盘给s4读入一串字符,读入#后结束输入。然后for循环语句、使用printf语句、%c输出读入s4中的所有字符,换行后使用puts输出s4。(注意键盘输入后有字符串结束标志,输出时也用该结束标志)

4、使用函数strcpy,将s4拷贝到s,用%s格式输出s,换行后用puts函数输出s4。

按以上要求编写程序。

  • 写回答

2条回答 默认 最新

  • 关注

    代码如下,如有帮助,请帮忙采纳一下,谢谢。

    #include <stdio.h>
    #include <string.h>
    int main()
    {
        //1
        char s[100]= "Hello WoRlD!";
        char s1[100]={0},s2[100]={0},s3[100]={0},s4[100]={0};
        int i=0,j,sz=0,ot=0;
        //2
        scanf("%s",s1);
        getchar(); //接收此处的回车符
        while(s1[i]!= '\0')
        {
            if(s1[i]>='0' && s1[i]<='9')
                s2[sz++] = s1[i];
            else
                s3[ot++] = s1[i];
            i++;
        }
        
        printf("%s\n",s1);
        puts(s2);
        puts(s3);
        //3
        i=0;
        while(1)
        {
            scanf("%c",&s4[i]);
            if(s4[i] == '#')
            {
                s4[i]= 0;
                break;
            }
            i++;
        }
        for(j=0;j<i;j++)
            printf("%c",s4[i]);
        printf("\n");
    
        puts(s4);
    
        //4
        strcpy(s,s4);
        printf("%s\n",s);
        puts(s4);
    
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月8日
  • 已采纳回答 11月8日
  • 修改了问题 11月8日
  • 创建了问题 11月8日

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作