A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Freedam 中级黑马   /  2014-4-4 12:34  /  1092 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Freedam 于 2014-4-6 16:49 编辑

在编程的时候有时候总会遇到读入一大堆字符串或者是从键盘或文件中读入一些文件流,这些需求利用具体的哪些C语言中的函数或者是方法可以很好的处理一下。以前自己写的程序总是定义一个大的字符数组,现在发现这种做法会出很多问题,总会越界。请大家帮忙指点一下。

4 个回复

倒序浏览
你自己以前用一个大的字符数组,总越界或者溢出,你要注意如果你定义了一个 char a[10];这个数组的长度是10
但是,字符的个数只能是10-1个啊,计算机会默认加上一个\0
你也可以利用指针 char *a="abcd"这样的来输入,但是要注意这个是无法修改的
回复 使用道具 举报
哦 这个我理解 那有没有更好的方法去解决这个问题。就是比如说定义一个别的数据类型或是利用其它方法去接收一堆毫无规律的字符串或是流数据并将这堆数据进行输出处理。
回复 使用道具 举报
本帖最后由 一只小菜鸟 于 2014-4-4 16:06 编辑

用宏定义改变大小。
  1. #include <stdio.h>
  2. #define N 200
  3. int main(){
  4.     char s[N];
  5.     scanf("%s",s);
  6.     printf("%s",s);
  7.     return 0;
  8. }
复制代码

回复 使用道具 举报
一只小菜鸟 发表于 2014-4-4 16:05
用宏定义改变大小。

用宏定义倒是可以,但是如果一下接收一整个文件那么多的字符串是不还得手动改宏定义的值。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马