取得一个字符串中第一个 '?'号之前的字符。怎么搞

解决方案 »

  1.   

    CString m_char,m_disp;
    m_disp="jadfueiuajdf?";
    m_char="?";
    if (!m_char.IsEmpty())
    {
    int index = m_disp.Find(m_char);
    m_disp = m_disp.Right(m_disp.GetLength()-index-1);
    }
    返回m_disp就行
      

  2.   

    忘了说了,不用CString
    俺用C哦
      

  3.   

    CString temp=the.m_bb;
    CString reslut=temp.Left(temp.Find("?")-1);
      

  4.   

    int j=0;
    for(i=0;i<strlen(str);i++))
    {
        if(str[i]!='?')
        {
          str1[j++]=str[i];
        }
        else
        {
            break;
        }}
      

  5.   

    char *str = ch; 
    while(*str)
    {
      if (*str=='?')
      {
         *str = '\0';
         break;
       }
       str++;
    }
      

  6.   

    char a[10]="adfjfkdk?"
    char temp[10];
    int i;
    for (i=0;i<10;i++)
    {
      if(a[i]!='?')
        temp[i]=a[i])
    }
    return temp;
      

  7.   

    USTCTony(Tony)和zhucde(【风间苍月】) 的代码都没有置字符串结束,加上就可以了。:)
    baberson(平平狐)的代码修改了源字符串,不推荐使用。:)其实还可以用字符查找和复制功能实现的。#include <string.h>...
    char dest[strlen(src)];
    memset(dest, strlen(src), 0);    /* 初始化目的字串为0 */
    char * p = strchr( src, '?' );   /* 找到 '?'          */
    memcpy (dest, src, p-src);       /* 复制 '?'前的字符  */
    ...
      

  8.   

    我声明的是temp[30]
    char a[10]="adfjfkdk?"
    char temp[30];
    int i;
    int len;
    len=strlen(a);
    for (i=0;i<len;i++)
    {
      if(a[i]!='?')
        temp[i]=a[i])
      else 
        break;
    }
    return temp;可以截取出来的字符应该是<30,造成了后面没用的打印出来都是乱麻,怎么去掉?
      

  9.   

    bx2000(猪头): return 与举止前加上 temp[i] = '\0';否则字符串没有结束good luck.
      

  10.   

    sorry, 输入错误应该是在return 语句前加上 temp[i] = '\0';  否则字符串没有结束