C语言字符串与指针(5)

2019-03-16 14:44

序员经常面临的环境是任务紧,压力大,加班成为家常便饭,同时,新技术层出不穷,程序员在完成本职工作的前提下,还要不断努力学习,稍有懈怠,即有因知识老化被淘汰的危险。虽然我们说,市场化的竞争社会,各行各业都压力,但是无疑,程序员这个职业是压力较大的一种。那么,我们程序员究竟有没有办法,通过自己的一点努力,让自己的生活变得轻松一点,压力小一点,更多一点时间来陪伴家人,共享天伦之乐呢?

笔者从事IT程序开发几十年,被人招聘,也招聘过人,有压力,也有心得,看过很多书籍,也做过一些工程项目,很多时候,笔者和朋友们也都面临上述的问题。不过,经过这么多年的思考,笔者发现,上述问题其实并非无解,简单说来,无非是一个年轻人,从学校出来,需要迅速扭转学生思维,做工程不搞科研,做项目不做学问,以务实的态度,迅速进入商用软件开发领域,并在成本和质量意识的基础上,不断对自己的技能精益求精,高质量地完成各种商用软件工程项目,最终也使自己成为企业合用的人才。

但是很遗憾,笔者看了很多计算机软件编程方面的教科书,这些书虽然都讲解了很好的知识,但是,也许是笔者孤陋寡闻,几乎没有一本书,是站在商用软件开发,站在企业、市场化的角度,来论述软件开发的原则和道理,同时,很多教科书上,讲解了很多正确的开发知识,但对于如何开发正确的程序,如何杜绝程序中的bug,如何开发出高安全度,高可用性的商用软件,论述甚少,尤其在近年来32位多任务操作系统大行其道时,如何以一种简便、安全的方式,开发出合用的并行商用工程,更是很少有书籍涉及。这几乎已经成为IT软件全行业的一块“短板”。简单说来,目前的软件开发书籍,正确的多,实用的少,对于商业企业中的职业化开发,缺乏指导资料。

笔者有鉴于此,决定写这本书,一方面,笔者希望把自己这么多年的开发经验做个总结,并share给各位读者,另一方面,笔者也希望从另外一个角度,从纯粹商业化的,务实的角度,论述一点商用工程开发的道理,希望能帮助更多的朋友,能迅速掌握商用开发的基本原则,迅速掌握企业开发的基本原则,最终,成为企业合用的人才。

本书不仅仅是一本技术类书籍,虽然本书给出了很多诸如内存池、线程池、任务池、锁、队列、debug和日志系统等常见商用软件开发的范例,也给大家展示了一个可用度较高的工程库,但笔者认为这并不是本书的重点,贯穿本书始终的以需求为主导的系统分析方法,实用主义的开发态度,以及务实的程序实践理念,才是本书的精华所在,因此,笔者请各位读者在阅读本书时,不要就技术谈技术,尽量多思考技术之外的东西,这样的话,各位读者的收获可能更多。

C语言字符串函数总结

C语言字符串函数总结: 1.字符处理库(ctype)中的函数

2.stdio中的字符串和字符输入/输出的函数 3.通用实用库stdlib中的字符串转换函数 4.字符串处理库string中的字符串处理函数

C语言的字符串实际上是存储单个字符的数组,结尾包含一个结束该字符串的特别的字符(\空字符\,用'\\0'表示)。

char string1[]=\实际上有6个元素。 char color=\

注意p[i]不能修改,若需修改应用字符数组。 一、.字符处理库(ctype)中的函数 #include 函数原型:int f(int c)

isdigit, isalpha, isalnum, isxdigit, islower, isupper, tolower, toupper,

isspace,空白字符:新行符\\n, 空格,回车''\\r\,水平制表符\垂直制表符\isctrl, ispunct, isprint, isalpha

二、stdio中的字符串和字符输入/输出的函数

int getchar(void) 从标准输入设备读取字符以整数返回

char * get(char * s) 从标准输入设备读入字符到数组s直到遇到新行符和文件结束符为止,然后再数组后追加NULL字符

int putchar(int c) 打印字符

int puts(const char * s) 打印字符串s和新行符

int sprintf(char * s, const char * format) 与printf区别在于输出结果存放在s中 int sscanf(char * s, const char * format); 与scanf区别在于从数组s读取数据 示例1 字符串反转 #include void reverse(char *s) {

if(s[0] == '\\0') return;

else {

reverse(&s[1]); putchar(s[0]); } } int main() {

char s[100]; gets(s); reverse(s); return 0; } 输入:sf 输出:fs

示例2 sscanf和sprintf #include int main() { int x=1; double y=2.1; char s[100];

sprintf(s,\puts(s);

sscanf(s,\printf(\return 0; } 输出:

Hello!1, 2.100000 x:1, y:2.100000

三、stdlib中的字符串转换函数 #include

1. atoi(将字符串转换成整型数) 定义函数 int atoi(const char *nptr); 函数说明 atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\\0')才结束转换,并将结果返回。 返回值 返回转换后的整型数。 附加说明 atoi()与使用strtol(nptr,(char**)NULL,10);结果相同。

2. atof(将字符串转换成浮点型数) 定义函数 double atof(const char *nptr); 函数说明 atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\\0')才结束转换,并将结果返回。参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分,如123.456或123e-2。 返回值 返回转换后的浮点型数。 附加说明 atof()与使用strtod(nptr,(char**)NULL)结果相同。

3. atol(将字符串转换成长整型数) 定义函数 long atol(const char *nptr); 函数说明 atol()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\\0')才结束转换,并将结果返回。 返回值 返回转换后的长整型数。 附加说明 atol()与使用strtol(nptr,(char**)NULL,10);结果相同。

4. strtod(将字符串转换成浮点数) 定义函数 double strtod(const char *nptr,char **endptr); 函数说明 strtod()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,到出现非数字或字符串结束时('\\0')才结束转换,并将结果返回。若endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr传回。参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分。如123.456或123e-2。 返回值 返回转换后的浮点型数。

5.strtol(将字符串转换成长整型数) 定义函数 long int strtol(const char *nptr,char **endptr,int base); 函数说明 strtol()会将参数nptr字符串根据参数base来转换成长整型数。参数base范围从2至36,或0。参数base代表采用的进制方式,如base值为10则采用10进制,若base值为16则采用16进制等。当base值为0时则是采用10进制做转换,但遇到如'0x'前置字符则会使用16进制做转换。一开始strtol()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时('\\0')结束转换,并将结果返回。若参数endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr返回。 返回值 返回转换后的长整型数,否则返回ERANGE并将错误代码存入errno中。 附加说明 ERANGE指定的转换字符串超出合法范围。

6. strtoul(将字符串转换成无符号长整型数) 定义函数 unsigned long int strtoul(const char *nptr,char **endptr,int base); 函数说明 strtoul()会将参数nptr字符串根据参数base来转换成无符号的长整型数。参数base范围从2至36,或0。参数base代表采用的进制方式,如base值为10则采用10进制,若base值为16则采用16进制数等。当base值为0时则是采用10进制做转换,但遇到如'0x'前置字符则会使用16进制做转换。一开始strtoul()会扫描参数nptr字符串,跳过前面的空格字符串,直到遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时('\\0')结束转换,并将结果返回。若参数endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr返回。 返回值 返回转换后的长整型数,否则返回ERANGE并将错误代码存入errno中。 附加说明 ERANGE指定的转换字符串超出合法范围。 示例:

#include #include int main() { double d;

char * string=\char * strPtr;

d=strtod(string, &strPtr); printf(\ return 0; }

输出:51.200000 And String


C语言字符串与指针(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:SNCR+SCR方案 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: