字符串→整数
核心思想:遍历字符串,将字符串的每一个字符经过处理变为整型。
考察知识点:
1.字符是以ascii码值形式存储的
2.常见的字符对应的ASCII码:
0:48;A:65 ;a:97即a-32=32
3.字符如何转化为相对应的整型:
只需要让字符0减去相应的ASCII码就可以变成对应的数字了
有两种方法可以等价实现:
a.n=n-48(因为0的ASCII码为48,字符以ASCII码值存储,故只需要将每个字符减去0的ASCII码即可)
b.n=n-'0' 与上面同理 字符0可以表示为它的ASCII值48或'0'
举个数字来分析介个题,“1234”→1234,
第一次循环指针p指向数组首元素地址,如果str【0】是‘-’的话就会执行continue跳过此次循环的剩下部分直接进行下一次循环;如果不是,说明是个正数,
那么a=0+(1-‘0’)上文提到了字符减去'0’即可变成整数
第一次循环把字符串1234的第一个元素变成了整数1加进了a中,同理,
第二次循环1*10+2=12;
第三次循环12*10+3=123;
第四次循环123*10+4=1234;
第五次循环指针遇到了‘\0’字符串结束的标志,循环结束。
把字符串大小写转换并倒序输出
核心思想:
遍历数组,如果遇到小写字母则减32变成对应的大写字母,反之若为大写,则加32变为对应小写。
考察知识点:
同上道题一样,须知:字符是以ASCII值存储的,a-A=32。
特别注意:
在判断字符是否为小写之后,还要用else if来判断是否大写,因为除了小写字母和大写,还有其他字符
比如!@#$#%+_=-%# blablabla~小细节,,
拓展:
1.strlen()是用来返回字符串长度的函数,对应头文件为#include,比如gets了一个含有10个字符的字符串,则strlen(a)的值为10。
2.将判断语句中的"a>='a'&&a头文件。
同理,判断大写字母只需要if(upper(a))就可以了。如果单纯判断是否为英文字母包括大小写,可以直接用isalpha(a)来实现。
这是一些需要了解的基本函数,记住它们可以省去一些不必要的麻烦了解函数原理和函数原型很重要,这里可以百度一下
加减乘(函数调用)
指针变量作为函数的参数进行传递时
实参是地址变量的指针,
形参是指针变量,用来接收实参传递过来的地址,从而实现指针变量直接访问主函数中变量的功能
Tips
1.辨析
变量的指针(常量):变量在内存单元中的起始地址编号;
指针变量(变量)储存其他量的地址的量。
2.字符串,数组中,常用的使循环趋于结束的语句
a. while(*p)遇到'\0'时循环结束。
b. int a[100],*p; for(p=a;*p!='\0';p++)
领取专属 10元无门槛券
私享最新 技术干货