| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 820 人关注过本帖
标题:请高手诊断
只看楼主 加入收藏
thames
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-8-12
收藏
 问题点数:0 回复次数:4 
请高手诊断
//测试文本是否回环
#include<iostream.h>
#define SIZE=30;
main()
{
      char words[30],words1[30];
      int ctr,ctr1,ctr2;
      ctr2=0;
      cout<<"请输入需要鉴别的语句:\n";
      gets(words);
      puts(words);
      for(ctr1=0;ctr1<30;ctr1++)
      {
                if((words[ctr1]>64&&words[ctr1]<91)||(words[ctr1]>96&&words[ctr1]<123))
                {
                words1[ctr2]=words[ctr1];
                words1[ctr2+1]='\0';
                ctr2++ ;}
                else{continue;}
               

      cout<<words1<<"\n"<<ctr2;
      }
      words1[ctr2]='\0';
      ctr2--;
      for(ctr=0;ctr<=ctr2;ctr++)
      {words1[ctr]=words1[ctr]&223;}
      cout<<"处理后语句为:"<<words1<<"\n";
      cout<<ctr2;
      
      ctr=0;
      while(words1[ctr]==words1[ctr2-ctr])
      {ctr++;}
      ctr2++;
      if (ctr==ctr2)
      {cout<<"这是一个回环语句。\n";}
      else
      {cout<<"这不是一个回环语句。\n";}
      cout<<ctr;
      cin.get();
      return 0;
      }
" border="0" />
搜索更多相关主题的帖子: 诊断 continue else main 
2008-08-12 11:55
thames
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-8-12
收藏
得分:0 
运行结果
请输入需要鉴别的语句:
iamai
iamai
i
1ia
2iam
3iama
4iamai
5iamaip
6iamaipX
7iamaipXP
8处理后语句为:IAMAIPXP
7这不是一个回环语句。
0

为什么words1赋值中会出来莫名其妙的pXP?
2008-08-12 11:58
wangtianhong
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-10-30
收藏
得分:0 
reply
出现非法字串的原因可以肯定是你访问了非法的地址,极有可能出现非法字符
2008-08-12 14:28
elegant87
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2008-1-15
收藏
得分:0 
内存分配问题,你需要动态分配内存!

//测试文本是否回环
#include<iostream>

using namespace std;
 
const int SIZE=30;//比define要好
int main()
{
      char *words= new char [SIZE];//动态分配!
      char words1[SIZE];
      int ctr,ctr1,ctr2;
      ctr2=0;
      cout<<"请输入需要鉴别的语句:\n";
      gets(words);
      puts(words);
      int len=sizeof(words)/sizeof(char);//数组的长度,也就是字符串的长度!
      for(ctr1=0;ctr1<=len;ctr1++)
      {
                if((words[ctr1]>='a'&&words[ctr1]<='z')||(words[ctr1]>='A'&&words[ctr1]<='Z'))
                {
                    words1[ctr2]=words[ctr1];
                    words1[ctr2+1]='\0';
                    ++ctr2;
                }
                else
                   continue;
               cout<<words1<<"\n"<<ctr2;
      }
      delete [] words;//释放内存!
      words1[ctr2]='\0';
      ctr2--;
      for(ctr=0;ctr<=ctr2;ctr++)
          words1[ctr]=words1[ctr]&223;//
      cout<<"处理后语句为:"<<words1<<"\n";
      cout<<ctr2;
      ctr=0;
      while(words1[ctr]==words1[ctr2-ctr])
          ctr++;
      ctr2++;
      if (ctr==ctr2)
        cout<<"这是一个回环语句。\n";
      else
        cout<<"这不是一个回环语句。\n";
        cout<<ctr;
      system("pause");
      return 0;   
}
2008-08-12 15:15
thames
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-8-12
收藏
得分:0 
3楼测试通不过啊
比如说iam ai,赋值给words1到iam就停止了,'/0'之后无法判断了
2008-08-14 14:29
快速回复:请高手诊断
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018465 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved