데이터 구조 18: 데이터 구조의 문자열

9280 단어
         
   BF  (        ) 
         ,    ,  n           ( n >= 0 )。  n         、          。

  ,S = ”BEIJING” ,S         ,BEIJING     。
        ,                。
    
  :        。  :S = “”(          ),      Ø   。

   :       。        ,         ,         ,             。  ,a = ”   ”(  3   )。

     :                      ,          。
  :a = ”BEI”,b = ”BEIJING”,c = ”BJINGEI” 。      a   b   ,   b           a ,      a   b    ,b   a    ;    c   a ,   c      a      ,       “BEI” ,    c   a       。

         :    a = ”BEI”   ,    ‘B’    b      1 ,     a     b = “BEIJING”       1。
                       ,          1    。
        :            ,        。
        
         :123     。
      
         (     )   。

  :char a[7] = "abcdfg";

       ,                   。               ,          (  “  ”)。

  :char a[3] = "abcdfg";  //           “ab” ,      。
     
         。
 C   ,         “ ”      ,  malloc     freemallocfree         。
  :char * a = (char*)malloc(5*sizeof(char));//   a   ,    5  char          

            :            ,     realloc()              。

  :a = (char*)realloc(a, 10*sizeof(char));//             ;     ,         

   malloc          ,      ,        free()       。       ,         ,         。

  :free(a);//      a     

        ,    “abc”   “defg”    “abcdefg” ;
#include
#include #include <string.h>
int main() { char *a1 = NULL; char *a2 = NULL; a1 = (char*)malloc(3*sizeof(char)); strcpy(a1, "abc");  // “abc” a1 a2 = (char*)malloc(3*sizeof(char)); strcpy(a2, "defg"); int lengthA1 = strlen(a1); int lengthA2 = strlen(a2); if (lengthA1 < lengthA1+lengthA2)
   { a1
= (char*)realloc(a1, (lengthA1+lengthA2)*sizeof(char)); } for (int i=lengthA1; i)
   { a1[i] = a2[i-lengthA1]; } printf("%s", a1); free(a1); free(a2);
return 0; }

: abcdefg : , a1 a2 , strcpy 。 :a1
= ”abc” , , , , malloc free 。 : strcpy , ( , ) , a1 a2 , , , 。 , 。 , 。 , , 。 1 , “#” 。 、 。 , , , ( , )。 , , , 。 , :char *a = ”abcd”; , : , , ( ); 。 : #include int main()
{
char* a="abcd"; a[1]='b'; return 0; }
, , :
#include
#include #include <string.h>
int main()
{
char * a = (char*)malloc(4*sizeof(char)); strcpy(a, "abcd"); a[1] = 'e'; printf("%s", a); return 0; }


aecd , , , ;
, , 。

 
다음으로 전송:https://www.cnblogs.com/ciyeer/p/9033053.html

좋은 웹페이지 즐겨찾기