c语言中细节注意(初级)
 /*
     编写如下函数,不使用下标运算符,返回字符串str中字符c的个数
     (若不存在则为0)。
 */  
 #include <stdio.h>  
 int str_chnum(const char *str, char c)
 {
     ;  
     while (*str) {
         if (c == *str++)    n++;
     }
     return (n);
 }  
 int main(void)
 {
     ];
     char c;  
     printf("请输入字符串:");    scanf("%s", str);   
     getchar();                   // 清除缓存   
     printf("请输入要查找的字符:");    scanf("%c", &c);  
     printf("\n字符串\"%s\"中含有%d个字符\'%c\'。\n", str, str_chnum(str, c), c);  
     );
 }  
gcc 版本 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC)
 /*
     不使用下标运算符,写出与代码清单9-13中的str_toupper函数
     和str_tolower函数功能相同的函数。  
 */   
 #include <ctype.h>
 #include <stdio.h>    
 // 将字符串中的英文字符转换为大写字母
 void str_toupper(char *str)
 {
     while (*str)
         *str = toupper(*str++);
 }
 //使用valgrind后出现内存overflow
如果改成如下代码则正常
 char *str_toupper(char *str)
 {
     char *p = str;
     while(*str) {
         *str = toupper(*str);
         *str++;
     }
     return p;
 }
c语言中细节注意(初级)的更多相关文章
- C语言中指针和数组
		
C语言数组与指针的那些事儿 在C语言中,要说到哪一部分最难搞,首当其冲就是指针,指针永远是个让人又爱又恨的东西,用好了可以事半功倍,用不好,就会有改不完的bug和通不完的宵.但是程序员一般都有一种迷之 ...
 - Java语言中的面向对象特性总结
		
Java语言中的面向对象特性 (总结得不错) [课前思考] 1. 什么是对象?什么是类?什么是包?什么是接口?什么是内部类? 2. 面向对象编程的特性有哪三个?它们各自又有哪些特性? 3. 你知 ...
 - Coursera-Getting and Cleaning Data-week4-R语言中的正则表达式以及文本处理
		
博客总目录:http://www.cnblogs.com/weibaar/p/4507801.html Thursday, January 29, 2015 补上第四周笔记,以及本次课程总结. 第四周 ...
 - C语言中内存分配那些事儿
		
C程序的内存结构 C语言的之所以复杂,首先它的内存模型功不可没.不像某些那样的高级语言只需要在使用对象的时候,用new创建.所有之后的事情,你不需要操心.对于C语言,所有与内存相关的东西,都需要熟悉, ...
 - C语言中 *.c和*.h文件的区别!
		
C语言中 *.c和*.h文件的区别! http://blog.163.com/jiaoruijun07@126/blog/static/68943278201042064246409/ ...
 - C语言中结构体对齐问题
		
C语言中结构体对齐问题 收藏 关于C语言中的结构体对齐问题 1,比如: struct{short a1;short a2;short a3;}A;struct{long a1;short a2;}B; ...
 - go语言中的数组切片:特立独行的可变数组
		
go语言中的数组切片:特立独行的可变数组 初看go语言中的slice,觉得是可变数组的一种很不错的实现,直接在语言语法的层面支持,操作方面比起java中的ArrayList方便了许多.但是在使用了一段 ...
 - JAVA语言中冒号的用法
		
近来由于本人要介入android平台的开发,所以就买了本JAVA语言的书学习.学习一段时间来,我的感觉是谭浩强就是厉害,编写的<C编程语言>系列丛书不愧是经典.书中对C语言的介绍既系统又全 ...
 - C语言中的正负数及其输出
		
在数学中,数字有正负之分.在C语言中也是一样,short.int.long 都可以带上正负号,例如: //负数 ; short a2 = -0x2dc9; //十六进制 //正数 ; ; //八进制 ...
 
随机推荐
- 你不知道的 页面编码,浏览器选择编码,get,post各种乱码由来
			
原文:你不知道的 页面编码,浏览器选择编码,get,post各种乱码由来 asp.net页面编码和浏览器的选择编码 每个asp.net的朋友都知道,在新版本的visual studio,在没有任何设置 ...
 - Windows 下安装 Oracle 12c 教程
			
原文 Windows 下安装 Oracle 12c 教程 申明:本文原作者:Jmq 本文给大家带来的是 Oracle 12C 的安装教程. 1.准备 1.1 下载 Oracle 12c 安装程序 ...
 - postal邮件发送(一):基本配置
			
前言 源码:https://github.com/andrewdavey/postal 文档:http://aboutcode.net/postal/ postal最大好处就是再也不用拼接html发送 ...
 - jquery  触屏滑动+定时滚动
			
<!doctype html> <html> <head> <meta charset="utf-8"> <meta name ...
 - Centos中如何配置Texlive2013中文字体的问题
			
Centos中如何配置Texlive2013中文字体的问题: 第一步是下载你需要的字体,我从windows/fonts中拷贝的比较多,你只要复制你需要的字体即可. 注意只要文件扩展名为ttf的文件,t ...
 - 题目要求:建立一个类Str,将一个正整数转换成相应的字符串,例如整数3456转换为字符串"3456".
			
题目要求:建立一个类Str,将一个正整数转换成相应的字符串,例如整数3456转换为字符串"3456". 关键:怎么将一个数字转换为字符? [cpp] view plaincopy ...
 - iis处理请求随记回顾
			
----http是无状态的, 每次http请求户不影响,都是独立的:不会记的上次请求: -------iis原理:输入地址--socket封装请求体报文--发送---iis解析封装响应体---返回: ...
 - 安卓推送——个推服务端api使用误区
			
首先你需要在个推开放着平台上注册你的应用,以及获得以下几个必要的值APPID |APPKEY | MASTERSECRET,本文假设你已经完成上述步骤以及完成客户端SDK的集成. 原理 个推服务端ap ...
 - Js 数组(一):基础应用
			
(一) Js 数据类型 分为基本数据类型以及引用类型 基本数据类型有 null,undefined,Boolen,Number,String,还有一种复杂数据类型 Object. var var1 = ...
 - Parameter Binding in ASP.NET Web API(参数绑定)
			
Parameter Binding in ASP.NET Web API(参数绑定) 导航 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnbl ...