关于C++字符数组的一个问题

我用VC6.0,编了一个求一段字符数组中B个数的程序,结果可以编译、运行,但运行时报错退出。高手请进,帮忙看看这什么原因。#include<iostream.h>void... 我用VC6.0,编了一个求一段字符数组中B个数的程序,结果可以编译、运行,但运行时报错退出。高手请进,帮忙看看这什么原因。
#include <iostream.h>
void main()
{

int numB=0;
char *str="AABBCCDDAABBCCDD";
for(int i=0;i<16;i++){
if(str[i]='B'){
numB++;}
}
cout<<numB<<endl;
}
展开
 我来答
maohuiabc
2011-06-05 · TA获得超过197个赞
知道小有建树答主
回答量:113
采纳率:0%
帮助的人:144万
展开全部
char *str="AABBCCDDAABBCCDD";
str这个变量存储的是常量字符串"AABBCCDDAABBCCDD"的地址,这个字符串存储在常量存储区,不允许修改;

你可以改成char str[]="AABBCCDDAABBCCDD";
这样声明一个字符数组;数组由"AABBCCDDAABBCCDD"初始化,可修改数组元素

if(str[i]='B')是赋值语句,不是比较语句,比较语句用if(str[i]=='B')
samwang1012
2011-06-05 · 超过39用户采纳过TA的回答
知道答主
回答量:64
采纳率:0%
帮助的人:0
展开全部
str[i]='B'
改成
str[i]=='B'
str指向静态常量区的只读字符串
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sun_siliang
2011-06-05 · TA获得超过2.6万个赞
知道大有可为答主
回答量:9913
采纳率:100%
帮助的人:4642万
展开全部
if(str[i]='B')
//改为:=改==
if(str[i]=='B')
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yql0105
2011-06-05 · TA获得超过730个赞
知道答主
回答量:150
采纳率:100%
帮助的人:220万
展开全部
#include <iostream.h>
改为#include <iostream>
C++标准中是不用.h后缀的
然后在这句话下面加上using namespace std;
表示使用std命名空间,基本上C++程序都要加上这句话的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
秋枫5410
2011-06-05 · TA获得超过808个赞
知道小有建树答主
回答量:546
采纳率:0%
帮助的人:199万
展开全部
先给指针分配空间
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
释竹阳花
2011-06-05 · TA获得超过2901个赞
知道小有建树答主
回答量:837
采纳率:0%
帮助的人:825万
展开全部
#include <iostream.h>
void main()
{

int numB=0;
char *str="AABBCCDDAABBCCDD";
for(int i=0;i<16;i++){
if(str[i]=='B') //==,!=,>,<,>=,<=才是所需要的逻辑运算符,而=是算术运算符
{
numB++;}
}
cout<<numB<<endl;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式