C语言编程(练习1:函数 )
来源:互联网 发布:por una cabeza 知乎 编辑:程序博客网 时间:2024/04/30 08:12
题目: 定义一个函数,用于将一个字符串反序存放。例如,原串为 ABCDEF,则处理后的字符串为:FEDCBA
知识点:
- 字符串的定义问题
char *s;
上面只是定义一个字符串指针,并未为该指针分配存储空间。char s[100]; //定义一个存储字符串的数组,记得字符串与字符数组的区别。分配空间后,数组名s为字符串地址,s为指向数组的地址常量,不能做变量运算
- 字符串的读取问题
区分scanf函数和gets函数读取字符串的区别:如何决定字符串何时结束;
scanf()更基于获取单词,gets()更基于获取字符串;
scanf函数以遇到的第一个非空白字符开始,使用%s格式,字符串读到(但不包括)下一个空白字符(比如空格、制表符或换行符);如果指定宽度,如使用%10s,会读到10个字符或直到遇到第一空白字符,由二者中最先满足的那个终止输入。
/**< 定义一个函数,用于将一个字符串反序存放。例如,原串为 ABCDEF,则处理后的字符串为:FEDCBA */#include <stdio.h>#include <stdlib.h>#include <string.h> //包含字符串相关函数的头文件#define MAX_SIZE 100 //宏定义一个最大尺寸,数组的大小void inverted(char *s); //调用函数说明int main(){ char s[MAX_SIZE]; //定义一个字符数组 printf("输入字符串:\n"); //注意scanf 和 gets的区别 //scanf("%s",s); gets(s); inverted(s); //调用函数 printf("%s", s); //输出字符串用%s格式符 return 0;}void inverted(char *s) //函数形参为指针传递{ int size = 0; int num = 0; int i; char plate; size = strlen(s); //strlen函数是字符串中的字符个数,不包括字符串后面的\0结束符 num = size/2; for(i=0; i<num; i++) { int inver = size-i-1; plate = s[i]; s[i] = s[inver]; s[inver] = plate; }}
运行结果:
如果使用scanf()函数,会忽略开始输入时候的空白字符,并读取到下一个空白字符停止,如下:
正确的应该是使用gets()函数,如下:
0 0
- C语言编程(练习1:函数 )
- C语言编程(练习2:函数 )
- C语言编程(练习3:函数 )
- C语言编程(练习4:函数 )
- C语言编程(练习1:字符串和字符串函数)
- C语言函数编程练习
- C语言编程(练习3:字符串与字符串函数)
- C语言编程(练习4:字符串与字符串函数)
- C语言编程(练习5:字符串与字符串函数)
- C语言编程(练习5:字符串与字符串函数)
- C语言函数练习1
- C语言编程练习
- c语言函数练习
- C语言编程(练习1:循环,三大循环结构 )
- C语言编程(练习1:分支和跳转 )
- C语言编程(练习1:字符输入和输出 )
- C语言编程(练习1:数组和指针)
- c语言编程练习(一)
- CSS3实现闪烁动画效果
- mvc列表显示筛选 或者模糊查询
- spring 注解 事务,声明事务共存的情况下,先后顺序
- PopWindow的使用方法之一
- Ubuntu下ns2中打补丁与生成补丁
- C语言编程(练习1:函数 )
- 如何获得系统时间
- 三种开发模式实现数据访问
- 变压器接触不良导致带7812稳压模块的电源带负载能力减弱
- sdut2397分类游戏
- 3.日期
- 【转】Linux下GCC内置原子操作函数
- ADB高级应用
- 控件坐标位置自适应算法