char *s1="1234567890";
char *s2="567";
//// 已知strcspn可以取得s2在s1中的位置
int i=strcspn(s1,s2);
//// 当然i=4;
请问怎么把s1中的前4个字符单独提出来,又什么函数吗?

解决方案 »

  1.   

    strcpychar *strncpy( char *strDest, const char *strSource, size_t count );
      

  2.   

    上面的错了,,是:
    char *strncpy( char *strDest, const char *strSource, size_t count );
      

  3.   

    tryint n=4;
    char* p = new char[n+1];
    p[n]=0;
    strncpy(p,s1,n);
      

  4.   

    用CString 类处理字符串最方便不过了,如:
    CStrig str;
    str="Hello!"; // str="Hello!"
    str.Left(4);  // str="Hell"
    .
    .
    .
    等等,特别是要将数值转换成字符串,更是方便,如
    str.Format("%f",3.14); // str="3.14"
      

  5.   

    同意SuperNut(超级坚果),还可以用str.right(n)来截取。另外要注意的是汉字必须以偶数位参数,原因不用说了吧
      

  6.   

    char *s1="1234567890";
    CString str=CString(s1);
    CString str1=str.Left(4);