有两个 字符串变量
str1="aaaaaaaa"
str2="bbbbbbbbbbbb"
我想输出一个字符串(str)有这两个组成但第一个占40个字符(str1长度不定),str2加在40个字符后面。怎样输出!!  thx!

解决方案 »

  1.   

    CString str;
    str.Format("%40s%s",str1,str2);
      

  2.   

    我没有这么用过,也忘了语法对不对,不对不要骂我哦,CString str;
    memcpy(str,str1,40);
    str = str + str2;
      

  3.   

    实在不行
    CString str;
    if(strlen(str1)>40)
    {
    memcpy(str,str1,40);
    str = str + str2;
    }
    else
    {
    for(int i = 0 ; i < 40 - strlen(str1) ; i ++)
    {
    str3 += ' ';
    }
    str = str1 + str3 = str2;
    }
      

  4.   

    我想的效果是str=aaaaaaaaaa            bbbbbbbbbbb
                                          ^
      

  5.   

    的一种方法出现的是:str=                aaaaaaaaaaabbbbbbbbb
      

  6.   

    CString  s = "aaaaaaaaaaaaaaaa....aaaa";
    CString  s2 = "bbbbbbbbbb.....bbbbbbbbbbb"; 
    CString  result;result = s.Left(40) + s2;
      

  7.   

    哦,还要加一个判断语句:if( s.GetLength() < 40 )
    {
       for(int i=0; i<40-s.Getlength(); i++)
           s += " ";  // 一个空格
    }
      

  8.   

    我的s没有这么长 你的方法:result=aaaaaaaaabbbbbbbbb
      

  9.   

    edit控间在输入之后读出,然后清零,清零用什么函数?
      

  10.   

    第一种方法是对的。第二种方法不止有编译错误,在思想上也有错误。
    memcpy是从内存中拷贝数据,str与str1都是字符串,都是以/0结尾的,在拷贝时虽然制定拷贝长度是40,但str1已经结束了,所以拷贝操作也就结束了,最终结果不能拷贝40个长度。第三种方法,也可以,不过感觉不是太好。
      

  11.   

    若要str1在开头部分,
    CString str;
    str.Format("%-40s%s",str1,str2);注意多了个负号
      

  12.   

    上面的方法不行呀
    aaaaaaaaa             bbbbbbbbb
    a                     bbbbbbbb
    aaaaa                 bbbbbbbbbbbbbbbbbb
    上面是我想得到的。 
     rtdb(东临碣石)你的方法看上去没有问题
    但是输出:
    aaaaaaaaa             bbbbbbbbb
    a                  bbbbbbb为什么?
      

  13.   

    为什么这个最后的字符串,输出的aaaaaaaaaa            bbbbbbbbbbbbbb
    我把它输入listbox中为什么格式会改变? aaaaaaaaa   bbbbbbbbb中间可能少了写字符???
      

  14.   

    在dos下是正确的。在windows中显示是有问题。可能windows中" "与字符不等宽。