解题思路:
一个C语言初学者的学习心得,在学习的过程,我们不应该单纯地看着某一道题来解决单一的问题,应该学会举一反三,思考一个通用规律,面向对象解决问题比面向结果解决问题更重要。
下面,是我在探索关于字符串的转换问题的一些想法,如果有错,也希望大佬们指出我所说的一些错误。
我在解题中用到了gets()函数,之所以不用scanf,我自己查了一下:
(1) gets() 可以接收空格、Tab键, 碰到回车键输入才结束;而scanf碰到空格、回车、Tab键 都会结束输入。
(2) gets() 和scanf() 都不能检测越界。注意事项:
再者也是我认为使用scanf还需要多一个循环,比较麻烦;
还有一个就是使用了strken()函数,为什么呢
我在想,如何输出的问题,所以我使用这个函数把字符串的长度计算出来,就可以实现有多少个字符就循环多少次,不至于浪费时间。
然后,回归到最基本的,ASCLL码,我们知道字符在码中都有对应的数字表示,所有,转换时可以直接相加。
参考代码:
#include<stdio.h>
#include<string.h>
#define N 100
int main()
{
int i,a;
char ch[N];
gets(ch);
a = strlen(ch);
for(i=0;i<a;i++){
printf("%c",ch[i]+4);
}
return 0;
}
0.0分
5 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复