char数组 第23个起 读入异常

zhuweifenghz 2012-04-11 11:05:30

//
// main.c
// wordCount
//
// Created by Dave Mark on 7/4/11.
// Copyright 2011 Dave Mark. All rights reserved.
//

#include <stdio.h>
#include <ctype.h> //This is to bring in the declaration of isspace()
#include <stdbool.h> //This is to bring in the define of true


#define kMaxLineLength 200
#define kZeroByte 0

void ReadLine( char *line );
int CountWords( char *line );

int main (int argc, const char * argv[]) {
char line[ kMaxLineLength ];
int numWords;

printf( "Type a line of text, please:\n" );

ReadLine( line );
numWords = CountWords( line );

printf( "\n---- This line has %d word", numWords );

if ( numWords != 1 )
printf( "s" );

printf( " ----\n%s\n", line );

return 0;
}


void ReadLine( char *line ) {
int numCharsRead = 0;

while ( (*line = getchar()) != '\n' ) {
line++;
if ( ++numCharsRead >= kMaxLineLength-1 )
break;
}

*line = kZeroByte;
}


int CountWords( char *line ) {
int numWords, inWord;

numWords = 0;
inWord = false;

while ( *line != kZeroByte ) {
if ( ! isspace( *line ) ) {
if ( ! inWord ) {
numWords++;
inWord = true;
}
}
else
inWord = false;

line++;
}

return numWords;
}




l后面不知道为啥出来\xe0\x7fGj...等的一堆,之前22个,都只是一个字母而已。 不知道有木大侠知道这是啥情况。
...全文
105 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuweifenghz 2012-04-14
  • 打赏
  • 举报
回复
楼主弄错了,是没问题的,哈哈,抱歉了,各位。
ljhhh0123 2012-04-12
  • 打赏
  • 举报
回复
没问题呀。
hen_hao_ji 2012-04-11
  • 打赏
  • 举报
回复
应该不会啊,楼主是输入了什么字符串,我把 line输出来,是对的啊。。。

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧