weixin_43812352 2019-01-15 17:01 采纳率: 0%
浏览 371

请问以下这段C++代码有什么问题?

编译器是 Visual Studio 2010
运行时弹出警示框,提示words变量在未被初始化的情况下被使用。

int main ()
{
    char article[5000];
    char words[500][20];
    char sentences[100][100];
    int countSentences=0;
    int countWords=0;
    char *count;
    char *temp;
    cout<<"请输入需要解析的英语文章:";
    cin.getline(article,5000);
    count=article;
    temp=article;
    for(int i=0;*temp!=' ';temp++,i++)
        words[0][i]=*temp;
    for(;*count;count++)
    {
        if (*count==' ') countWords++;
        else if (*count=='?'||*count=='.'||*count=='!') countSentences++;
    }
    countWords++;
    cout<<"共计 "<<countWords<<" 个英语单词"<<endl;
    cout<<"共计 "<<countSentences<<" 个句子"<<endl;
    cout<<*words[0]<<endl;
}

C++小白,指针的概念这一块始终有点弄不清楚。

  • 写回答

4条回答 默认 最新

  • 浩天的博客 2019-01-15 17:32
    关注

    这里的意思是这样, 把你输入的英文字母, 循环赋值到words数组中
    words是一个二维数组, 第二维是一个一个的字符, 比如输入 abcdefg 那么二维上面存放的是 a 字符 b 字符 c字符 等等
    但是如果访问words的第一维 那么就是一个字符串
    比如 words[0][0] = 'a' words[0][1]= 'b' words[0][2] = 'c'
    那么输出 words[0]表示 abc这个字符串的地址
    *word[0]就会输出 字符串 'abc'
    错误的话你还是吧完整的错误信息发出来我看看

    评论

报告相同问题?

悬赏问题

  • ¥15 slam rangenet++配置
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊