码迷,mamicode.com
首页 > 其他好文 > 详细

C primer 第六章循环 习题6.7

时间:2017-05-17 14:11:13      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:函数   长度   string   读取字符串   ring   符号   oid   输入   std   

6.07 让用户输入一个单词,并倒序打印这个单词

#include <stdio.h>
#include <string.h>
int main(void)
{
   char word[20];
   size_t size;
   int index;


   printf("Please enter a word:");
   scanf("%s",word);
   size=(strlen (word));
   index=size--;


   for(;index>=0;index--)
      printf("%c",word[index]);


   return 0;
}

 

注意:1)strlen()函数用于计算字符串长度,其返回值类型为size_t,实质是unsigned int,因此在本例中不可直接放入for循环比较>=0(可以比较>0),否则出现错误。解决方法为新定义int 变量 index,将strlen()的值赋给index;

2)本题中index作为字符串的下脚标,应从零开始计数,故index=strlen()-1;且一定要减到0才可跳出循环,故必须比较index>=0;

3)读取字符串用%s作为转换说明,且scanf在读取字符串时无需加 &;

 

PS:strlen()函数转换说明为%zd 或%u;

sizeof使用时可加括号可不加,当运算对象是类型时,例如sizeof(float),必须加上();对于特定量,写成 sizeof name或sizeof(name)均可;

strlen()在使用时务必加上();

sizeof() 和 strlen()区别:sizeof计算给数组(此处为字符串)分配的存储单元个数,strlen计算字符串中字符数(包括空格和标点符号);

C primer 第六章循环 习题6.7

标签:函数   长度   string   读取字符串   ring   符号   oid   输入   std   

原文地址:http://www.cnblogs.com/lee1994/p/6866624.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!