解题思路:

一个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.0分

5 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 1 条评论

ChZT 1年前 回复TA
话说那个是叫ASCII码来着...