爱问知识人 爱问教育 医院库

求助C语言编程

首页

求助C语言编程

编个程序要求满足以下功能将字符串数组中每一行中的大写字母A、B、C都换成数字2,并且去除字符串中的连字符号‘-’,但是数字保持不变。设字符串数组有3行。例如:字符串内容为:输出的内容为A-BC-CBC222222A-12- 3C-3-1 4

提交回答
好评回答
  • 2018-03-28 12:14:48
      楼主,分值是不是少了点啊???
    #include
    main()
    {int i,j,k;
    char a[10][10];
    for(i=0;i<10;i++)/*字符数组赋值*/
    scanf("%s",a[i]);
    for(k=0;k<10;k++)
    {
    for(i=0;i<10;i++)/*扫描字符是否是‘-’,如果是,删除。
      此处可以看做一维的来考虑了*/ {if(a[k][i]=='-') for(j=i;j<10;j++) a[k][j]=a[k][j+1];/*删除的方法,将后面字符依次前移动*/ } for(i=0;i<10;i++) if(a[k][i]=='A'||a[k][i]=='B'||a[k][i]=='C') a[k][i]=50; } for(k=0;k<10;k++) printf("%s\n",a[k]); } 程序运行过了,没问题的。
       我们要处理的数据是只有ABC和数字、-组成,别的字符我没有考虑,如果题目有要求,你可以尝试改一下。 对字符串赋值的问题就不用解释了吧。 按题目的要求,要处理的主要是两个问题,1:将字符串中的A,B,C字符换成2,2的ASCII就是50,程序里面的50就是这个原因了。
      2:将字符串中的‘-’删除掉。 对于上面的问题,我首先处理的删除‘-’的问题,扫描字符串,对于二维字符数组,我们先考虑一维的,然后增加一维扫描就好了。判断字符数组中字符是不是‘-’,如果是,将后面的字符依次前移动。那么这个时候就没有‘-’字符存在了 我们接着重新扫描字符串,如果字符是‘A’‘B’‘C’那么替换掉,替换成‘2’ASCII就是50,你也可以用a[k][i]='2'这样处理,这个时候就得到你要的程序结果了。
       我们输出结果检查,满足要求,OK了 这个是比较简单的思路,你可以写下函数调用的程序,也可以尝试写下关于指针处理的函数,祝你好运。 呵呵,第一句话,和你看玩笑了。

    少***

    2018-03-28 12:14:48

其他答案

    2018-03-28 11:14:48
  • 楼上的姐姐不行吧,楼主给的是字符串啊,不应该是char类型吧

    h***

    2018-03-28 11:14:48

  • 2018-03-28 07:14:48
  •   软件开发工程师就业培训
    ·课程教材采用李刚老师亲自编写、并已公开出版的J2EE教材、全程由李刚老师亲自授课。
    ·打造名企技术经理,成为中国软件产业的中流砥柱:全真企业需求,项目小组管理,大量实操项目的疯狂训练,企业全真案例教学,学成相当于两年工作经验
    ·四个半月掌握近8~10万代码量,达到技术经理的代码掌握量。
       ·全真体验式教学,高强度的狂热训练,带领学生走近编程,感受编程,热爱编程,学完后产生凤凰涅??般的重生。 ·本课程已纳入《全国计算机职业技能考试》(NIT-Pro)标准课程体系,毕业学员具备通过教育部NIT-Pro考试的能力,并可获得“东方标准课程结业证书”。
       详细课程介绍请查看 教学点:学校坐落于华南师范大学内,环境优雅!四周交通便利!我们一贯遵守诚实信用,勤勉尽责的办学宗旨,形成一套完善的教学风格,走进东方标准,踏出理想一步!走进东方标准,圆您斑斓之梦!。

    男***

    2018-03-28 07:14:48

  • 2018-03-28 06:14:48
  •   int fun(char *str,char *newstr){//str是输入字符串,newstr预先分配好内存,与str等长。输出的结果放在newstr里。返回新字符串的长度。
      char *p,*q;
      int len = strlen(str);
      if(len < 1){
        return 0;
      }
      p = str;
      q = newstr;//两个指针分别指向原字符串和新字符串
      while(p){
        if(*p != '-'){
          if(*p == 'A' || *p == 'B' || *p == 'C'){
            *q = '2';
          }
          else{
            *q = *p;
          }
          q ++;//原字符串不为'-'时,给新字符串赋值并移动指针
        }
        p ++;
      }
      *q = 0;
      return strlen(q);
    }
    简单的写了一下大概的意思,一个函数接口,没有编译不知道有没有错。
       。

    H***

    2018-03-28 06:14:48

类似问题

换一换
  • C/C++ 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 174-193
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):