求助C语言编程
编个程序要求满足以下功能将字符串数组中每一行中的大写字母A、B、C都换成数字2,并且去除字符串中的连字符号‘-’,但是数字保持不变。设字符串数组有3行。例如:字符串内容为:输出的内容为A-BC-CBC222222A-12- 3C-3-1 4
楼主,分值是不是少了点啊??? #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了 这个是比较简单的思路,你可以写下函数调用的程序,也可以尝试写下关于指针处理的函数,祝你好运。 呵呵,第一句话,和你看玩笑了。
楼上的姐姐不行吧,楼主给的是字符串啊,不应该是char类型吧
软件开发工程师就业培训 ·课程教材采用李刚老师亲自编写、并已公开出版的J2EE教材、全程由李刚老师亲自授课。 ·打造名企技术经理,成为中国软件产业的中流砥柱:全真企业需求,项目小组管理,大量实操项目的疯狂训练,企业全真案例教学,学成相当于两年工作经验 ·四个半月掌握近8~10万代码量,达到技术经理的代码掌握量。
·全真体验式教学,高强度的狂热训练,带领学生走近编程,感受编程,热爱编程,学完后产生凤凰涅??般的重生。 ·本课程已纳入《全国计算机职业技能考试》(NIT-Pro)标准课程体系,毕业学员具备通过教育部NIT-Pro考试的能力,并可获得“东方标准课程结业证书”。
详细课程介绍请查看 教学点:学校坐落于华南师范大学内,环境优雅!四周交通便利!我们一贯遵守诚实信用,勤勉尽责的办学宗旨,形成一套完善的教学风格,走进东方标准,踏出理想一步!走进东方标准,圆您斑斓之梦!。
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); } 简单的写了一下大概的意思,一个函数接口,没有编译不知道有没有错。
。
答:你是真不知道还是假不知道啊?安装完了桌面就显示个快捷方式,会开qq就会开它。进去后点新建,选c++souce file就可以了。详情>>
问:挺简单的一C函数,不过我是初学者,暂时还不会写,请好心人多多帮忙!
答:int mystrlen(char *str) { int n = 0; while (*str) { n++; str++;} return n; } voi...详情>>