for中变量 作用域问题

Happy_ZhangXv 2011-09-15 01:58:01

/*
*把某string里面的符号字符去掉
*/
#include<iostream>
#include<cctype>
#include <string>
using namespace std;
int main()
{
string Str;
cin>>Str;
string::size_type StrSize=Str.size(),FuhaoNumber=0;//为了Str1的初始化准备
for (string::size_type index=0;index!=StrSize;index++)
{
if (ispunct(Str[index]))
{
FuhaoNumber++;
}
}
string Str1(StrSize-FuhaoNumber,' ');//初始化Str1 用来存储非符号字符
for (string::size_type index1=0,temp=0;index1!=StrSize;index1++)//转移字符
{
if (!ispunct(Str[index1]))
{
Str1[temp]=Str[index1];
temp++;
}
}
cout<<Str1<<endl;
return 0;
}

上述语句中第二个for 循环里面 为什么不能用index 得换个名字才行? 我记得好像是 for里面定义的变量随for结束是要消失的啊

VC6.0环境编译的 难道这是编译环境的问题? 还是我记错了?
...全文
58 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Happy_ZhangXv 2011-09-15
  • 打赏
  • 举报
回复
2个问题 1个问题20分 都给第一个回答的了
0153 2011-09-15
  • 打赏
  • 举报
回复
VC6的for里的新变量是跟着外面的花括号走的,而不是像通常理解的那样跟着for走。如果采用以下例子的这种做法,for里面的变量就不会冲突:
int main(void)
{
int a=0;
{
for (int i = 0; i < 10; i++) {
a++;
}
}
{
for (int i = 0; i < 10; i++) {
a++;
}
}
return a;
}
mstlq 2011-09-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 happy_zhangxv 的回复:]
还有其他什么好方法实现不?
[/Quote]


/*
*把某string里面的符号字符去掉
*/
#include<iostream>
#include<cctype>
#include <string>
using namespace std;
int main()
{
string Str;
cin>>Str;
string::size_type StrSize=Str.size(),FuhaoNumber=0;//为了Str1的初始化准备
{//加一个
for (string::size_type index=0;index!=StrSize;index++)
{
if (ispunct(Str[index]))
{
FuhaoNumber++;
}
}
}//加一个
string Str1(StrSize-FuhaoNumber,' ');//初始化Str1 用来存储非符号字符
{//加一个
for (string::size_type index1=0,temp=0;index1!=StrSize;index1++)//转移字符
{
if (!ispunct(Str[index1]))
{
Str1[temp]=Str[index1];
temp++;
}
}
}//加一个
cout<<Str1<<endl;
return 0;
}
afreet2006 2011-09-15
  • 打赏
  • 举报
回复
VC6 for循环是有这样的问题,用VS2008打开VC6的工程时,总是会出现这种问题
chengwenyao18 2011-09-15
  • 打赏
  • 举报
回复
楼主,VS2005也是可以的,还是少用VC6.0吧!虽然我也是个怀旧的人儿。。。
Happy_ZhangXv 2011-09-15
  • 打赏
  • 举报
回复
还有其他什么好方法实现不?
bdmh 2011-09-15
  • 打赏
  • 举报
回复
vs2008中可以
mstlq 2011-09-15
  • 打赏
  • 举报
回复
对,真的是编译环境问题,vc6这里跟标准有冲突……

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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