#include <
stdio.h>
#include <math.h>
void main()
{
char str[81], *sptr;
int i;
for(i = 0; i < 80; i++)
{
str[i] = getchar();
if(str[i] == '\n')// 如果此时的字符是回车的话就不要执行循环出现火车意味
//着
字符串输入结束 你没发现你输入完字符串最后巧了一下回车么?
//一旦是回车就会执行break
for循环结束
break;
}
str[i] = '\0';//for循环一旦结束就会执行这一句 注意此时i的值就是你输入的字
//符个数 作用是在最后一个字符后面加上一个‘\0’字符用来作为
c语言判断字符串结束的依据
sptr = str; // 把字符串str 的首地址赋值给sptr 此时sptr的值就是str数组的首地址
while(*sptr) putchar(*sptr++); // 只要*sptr 就是以sptr的值 为地址的char个字节
//单元的值不是0('\0')就继续执行循环体(即:purchar(*sptr++))
//就是输出str里面的内容也就是你输入的字符串
}
//总结:这个题目抛开算法不说。其实就是考察你的字符串的是以什么为依据结束,
// 数组和指针变量的关系,以及循环语句的综合使用。
追问那要是没有这句if(str[i]=='\n') breake;可不可以
追答可以啊 不过这样的话回车就保存在数组最后了