Chinaunix

标题: 新人求解,如何在一个字符串中如何识别¥ [打印本页]

作者: 505300037    时间: 2013-04-14 12:12
标题: 新人求解,如何在一个字符串中如何识别¥
rt
大神求解 谢谢
作者: tansijie    时间: 2013-04-14 12:26
也就是字符串查找问题了,查找的时候要保证你源字符串是什么编码,那么 ¥ 这个符号用源编码的编码方式表示成一个数组,然后就可以用字符串查找方法查找了。
char  dest[] ="¥";
if( strstr(str, dest))
{
     //has finded
}
作者: 505300037    时间: 2013-04-14 13:56
回复 2# tansijie
我的字符串是数组,然后我照您说的做了下出现了

error C2446: '==' : no conversion from 'int' to 'char *'
        Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
的错误,请问下是什么回事
   
作者: tansijie    时间: 2013-04-14 14:25
505300037 发表于 2013-04-14 13:56
回复 2# tansijie
我的字符串是数组,然后我照您说的做了下出现了


你贴上你的源码,我看看。
作者: tansijie    时间: 2013-04-14 14:27
505300037 发表于 2013-04-14 13:56
回复 2# tansijie
我的字符串是数组,然后我照您说的做了下出现了


你的程序在哪 有== 的语句啊

char* p = strstr(str,dest);
if(NULL == p)
{
      // not find

}else
{
    //find

}
作者: 505300037    时间: 2013-04-14 14:41
回复 5# tansijie


             //a是目标数组
             char teshu[]={"¥"};
        for (i;i<n;i++)
                {
                        c=("%d",a);
                        if (!( c==32 || c==44 || c==46  || (c>=34 && c<=36)  || (c>=64 && c<=90) || (c>=97 && c<=122) || (c>=48 && c<=57) ))
                        {
                                if ( strstr(a,teshu)==i)
                                        i++;
                                else
                                {
                                cout<<"输入不符合要求"<<endl;break;
                                };
                        };
                           }
  百度上说strstr()返回的是第一次相同时的位置,所以我就这么写了,请问错在哪里

   
作者: tansijie    时间: 2013-04-14 21:55
505300037 发表于 2013-04-14 14:41
回复 5# tansijie



你的代码这句相表达什么意思,   c=("%d",a);  没看明白。
作者: tansijie    时间: 2013-04-14 21:58

  1. char str[] ="f13$¥房间俄罗斯方金额";
  2. char  sub_str ="¥";
  3. if(strstr(str,sub_str) != NULL)
  4. {
  5.      //find
  6. }else
  7. {
  8.     //not find
  9. }
复制代码

作者: 505300037    时间: 2013-04-15 12:28
回复 7# tansijie


    那句话是取a【i】的ascii值
作者: 505300037    时间: 2013-04-15 12:29
回复 8# tansijie

如果还需要知道¥在数组中的第几位要怎么写,谢谢
   
作者: littledick    时间: 2013-04-15 14:46
风马牛不相及。
作者: tansijie    时间: 2013-04-15 17:28
505300037 发表于 2013-04-15 12:29
回复 8# tansijie

如果还需要知道¥在数组中的第几位要怎么写,谢谢


想要知道第几位那很简单的方法啊

char str[] ="f13$¥房间俄罗斯方金额";
char  sub_str ="¥";
char p = strstr(str,sub_str) ;
ptrdiff_t  index = -1;
if(p != NULL)
{
     //find
    index = p -str ;

}else
{
    //not find
}




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2