刚刚学VC
我定义了一个CString s1;
现在想判断s1第n个字符是否为字符'x'。前面发贴,没说清楚,再次请指教。

解决方案 »

  1.   

    如果想改变sl中第n个字符的值应该如何做?
      

  2.   

    我试了,不行。编译可以通过,但运行到此就出错。检查过了下标未越界。 while(s.GetAt(i)!='\0'){
       ...
     }
      

  3.   

    char c = 'A';
    s1.SetAt(n, c);
      

  4.   

    没办法,我这里现在没有VC:(
    s1.SetAt(n,'a');可以吗?不可以的话可以
    CString str=sl.Left(n-1);
    str+='a';
    str+=sl.Right(sl.GetLength()-n);//我忘了参数是不是这么写了
      

  5.   

    你要用GetLength()的长度来循环就好了
      

  6.   

    CString s = "abc";
    s.GetAt(n)时n的取值范围为 >=0,<=2,下标是从0开始的,直到字符串长度减1。
    你不能用s.GetAt(3)来取字符串的结尾'\0'。
      

  7.   

    用fscanf(fi,"%s",s);给CString类型的s赋值有问题吗?
    但printf("%d",s.GetLength());总是显示s长度为0。而在跟踪时,明明看到s有内容的。
      

  8.   

    很怪,用printf("%d",s.GetLength());显示为0。改用printf("%d",strlen(s));就显示正确长度了。不知这是怎么回事?
      

  9.   

    刚刚学VC,感觉寸步难行!
    又遇到问题了。如何将s.GetAt(i)赋值给char类型的c呢?c=s.GetAt(i)不行。
      

  10.   

    不可能,c=s.GetAt(i)肯定可以的,除非你的i值超出了s的长度。
      

  11.   

    注意,CString类型的getat setat里面的i下标是从0开始的。
    CString str = "hello";
    str.Getlength() 是5
    str.GetAt(0)="h"