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

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日

悬赏问题

  • ¥20 西南科技大学数字信号处理
  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥15 R语言绘制密度图,一个密度曲线内fill不同颜色如何实现
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥15 pyqt信号槽连接写法
  • ¥500 把面具戴到人脸上,请大家贡献智慧,别用大模型回答,大模型的答案没啥用
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。