首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

本人初学者,询问这段关于字符串长度程序的有关问题

2012-05-21 
本人菜鸟,询问这段关于字符串长度程序的问题#include stdio.h#include string.hvoid main(){int icha

本人菜鸟,询问这段关于字符串长度程序的问题
#include <stdio.h>
#include <string.h>
void main()
{
  int i;
  char string[10];
  for(i=0;i<6;i++)
  {
scanf("%c",&string[i]);
  }
  printf("%s",string);
  printf("%d",strlen(string));
}

china
china
烫烫烫烫烫烫烫21

[解决办法]

C/C++ code
#include <stdio.h>#include <string.h>int main(){  int i;  char string[10];  for(i=0;i<6;i++)  {    scanf("%c",&string[i]);  }  string[i]='\0';  printf("%s",string);  printf("%d",strlen(string));  return 0;}
[解决办法]
C/C++ code
#include <stdio.h>#include <string.h>int main(){  int i;  char string[10];  for(i=0;i<6;i++)  {    scanf("%c",&string[i]);    getchar();//吸收缓冲区内的回车键  }  string[i]='\0';  printf("%s",string);  printf("%d",strlen(string));  return 0;}
[解决办法]
如楼上所言,打印字符串时必须是以'\0'结束的,系统识别字符串的方法是从指定地址向后搜索,直到有一个等于'\0'字符时结束,这段内存单元值视为一个字符串。
printf("%s",string)这个函数从string开始打印字符,直到遇到一个等于'\0'的字符才结束。如果string已经初始化为全0的话,是能得到正确结果的,即打印出输入字符,但是如果没有初始化,就极有可能出现乱码现象。

热点排行