在一个字符串里的所有'后在插入一个',使其为'',VC如何实现?
给点示范.

解决方案 »

  1.   

    给一个基本思想:
    1。查找出所有的',记下index,可存在一个数组中。
    2。在index处插入',注意记下插入的次数,并正确修改后面index的值
      

  2.   

    用strtok一个一个找,找的同时把它拷到一个临时buf里,然后再拷回来
    (纯c实现)
      

  3.   

    是两个字符还是一个字符,我认为你这样子应该是两个字符,其实很好做到
    使用CString::Find( TCHAR ch, int nStart ) ,他返回从nStart位置开始的第一个ch字符,然后用InsertAt插入字符就可以了,不过自己要记得调整nStart的值
      

  4.   

    是Insert,写错了
    int pos(0);
    pos=str.Find('\'',pos);
    while(pos!=-1)
    {
       str.Insert(pos,'\'');
       pos+=2;
       pos=str.Find('\'',pos);
    }
    应该这样可以了,没有试过
      

  5.   

    或者是
    str.Insert(pos+1,'\'');
    因为是前后字符都是一样的,所以没关系,不过要是不同,就该用这一句
      

  6.   

    已经测试通过#include <string.h>
    #include <stdio.h>
    #include <windows.h>
    #include <iostream.h>char string[] = "123'456'789'00";
    char seps[]="'";
    char *token;
    char buff[100];void main( void )
    {
    ZeroMemory(buff,100);
        printf( "%s\n\nTokens:\n", string );
        token = strtok( string, seps );
        while( token != NULL )
    {
    strcat(buff,token);
    strcat(buff,"\"");
            token = strtok( NULL, seps );
    }
    cout<<buff;
    }
      

  7.   

    最后buff里保存的就是你想要的
      

  8.   

    if (str.Find("''")==-1)
      str.Replace("'","''");
    else
    ...
    同上所说,但要比较前后是否还有'。:)
      

  9.   

    如下代码即可搞定
    int nStart = 0;
    while ((nStart = str.Find(_T("'"), nStart)) != -1)
    {
    str.Insert(nStart + 1, _T("'"));
    nStart = nStart + 2;
    }
      

  10.   

    //以下是一个示例,在VC++、BCB中均调试通过char s[]="a'aaaa'aaaaa''";
    char *s1=new char[100],*s2=s1;
    while(*s)
     { *s1++=*s;
       if(*s++=='\'') ;
         *s1++='\'';
      } 
    *s1='\0';//s2 便是你想要的结果。
      

  11.   

    jone7318(jone)的方法很好
    简洁有效
      

  12.   

    for(int i = 0; i< str.GetLength(); i++)
    {
      if(str.GetAt(i) == ''')
     {
     str.Insert(i+1,''');
     i++;
    }
     
    }
      

  13.   

    to:axinist(阿信) 
    你的str是什么类型?
      

  14.   

    同意 jone7318(jone) 。应该采用2个缓冲对拷的方法。快而且稳定。
      

  15.   

    大伙给您提供了这么多方法,够您挑着试了;解决问题,应该没问题
    Good Luck!!!
      

  16.   

    try this
    CString str = "asdf\'kasdjf\'";
    str.Replace("\'","\'\'");