题目:实现反序输出字符串。
思路:
1.找到第一个"\0"。
2、输入循环,让输入的字符倒序输出。
例如下面输入字符ABC,由于编程中设置的长度为60,所以有六十个方框,及长度为60,输入一个字符占一个框,没占框的用\0表示。
0 1 2 (len-1) 3(len)
A | B | C | \0 | \0 |
#include <stdio.h>
#include <iostream> //用到输出,输入流的头文件
using namespace std;
int main()
{
char str[60]; //char字符串,数组名[常量表达式];常量表达式表示元素个数,即数组长度
int i;len=0;
cout<<"请输入字符串"<<lendl; //输入流
scanf("%d",str); //scanf中输入项是字符数组名,所以不加地址符&
while(str[len]!='\0' //用while 循环,表示当str[0]不是\0时,执行len++ *1
len++; //当while循环为假(0)时,执行for语句,而不执行len
for(i=len-1;i>=0;i--) //注意:给i的初始条件赋值,当前的位置时str[3],\0;但我们要的是str[2]的位置,所以赋值为len-1。其中0>=0时,成立但是0--为负数,负数时for为假,for循环截至
printf ("%c",str[i]); //输出:%c 指的是字符char,%d 是整型int,%f 是浮点型float
return 0;
}
注释:
*1、当str[0]不是\0时,执行len++。
比如str[2]不是\0 (是C)时,往后++
其中 “!”是非,false转为ture,ture 转为false。
str[3]=\0时,while 循环为真(1),循环截至。
当while 循环为假 (0)时,执行for循环,而不执行len++
其中变量i(我觉得是指输入的字符,不知道对不对)