<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                字符串是一種重要的數據類型,但C語言中沒有顯式的字符串數據類型。頭文件string.h中包含了大多數對字符串的操作函數。因此,有字符串的操作時,一般會包含string.h頭文件。 1、字符串的長度:對字符串進行的操作中,經常要對它進行求長度的操作。字符串的長度就是它所包含的字符個數。**size_t strlen(char const *string); 注意:strlen返回一個類型為size_t的值,它是一個無符號整數類型。在表達式中使用無符號數可能導致不可預料的結果。 **如下面兩條表達式并不相等:** **if(strlen(x) >= strlen(y)) .... /*按照預想的那樣工作*/** **if(strlen(x) - strlen(y) >= 0).../*永遠為真,strlen的結果是個無符號數,所以操作符>=左邊的表達式也將是無符號數*/** ~~~ size_t strlen(char const *string) { int length; for(length = 0; *string++ != '\0';) length++; return length; } ~~~ 2、復制字符串:用于復制字符串的函數時strcpy,原型如下:char *strcpy(char *dst, char const *src); 它把參數src字符串復制到dst參數。dst參數的以前內容將被覆蓋掉并丟失。即使新的字符串比dst原先的內存更短,由于新字符串以NUL字節結尾,所以老字符串最后剩余的幾個字符也會被有效地刪除,(其實并為被刪除,可以使用地址訪問)。 我們必須確保目標字符數組的空間足以容納需要復制的字符串。如果字符串比數組長,多余的字符仍被復制,它們將覆蓋原先存儲于數組后面的內存空間的值。在使用該函數前確保目標參數足以容納源字符串,就可以避免大量的調試工作。 ~~~ #include <string.h> #include <stdio.h> int main(int argc, char **argv) { char message[] = "Original message"; printf("%c.\n", message[2]);//結果是Original中的i strcpy(message, "Different"); printf("%s.\n", message);/*結果是Different,后面的message因為NUL的原因未顯示*/ printf("%c.\n", message[2]);//結果是Different中的f printf("%c.\n", message[12]);//結果是message中的s return 0; } ~~~ 3、連接字符串:把一個字符串添加(連接)到另一個字符串的后面。原型:char *strcat(char *dst, char const *src); 該函數要求dst參數原先已經包含了一個字符串,它找到這個字符串的末尾,并把src字符串的一份拷貝添加到這個位置。同樣應該確保目標字符數組剩余的空間足以保存整個源字符串。 ~~~ #include <string.h> #include <stdio.h> int main(int argc, char **argv) { char message[100]; strcpy(message, "Hello "); strcat(message, "World.\n"); printf("message = %s",message); return 0; } ~~~ 注意:strcpy和strcat函數都返回它們第1個參數的一份拷貝,就是指向目標字符數組的指針。在實際應用中,它們的返回值經常只是簡單的被忽略。 4、字符串比較:比較兩個字符串涉及對兩個字符串對應的字符逐個進行比較,直到發現不匹配為止。 原型:int strcmp(char const *s1, char const *s2); 如果s1小于s2,返回值小于0; 如果s1大于s2,返回值大于0; 如果s1等于s2,返回值等于0; 5、其他字符串函數 char *strncpy(char *dst, char const *src, size_t len);向dst寫入len個字符。如果strlen(src)的值小于len,dst數組就用額外的NUL字節填充到len長度。如果strlen(src)的值大于或等于len,那么只有len個字符被復制到dst中。注意,它的結果將不會以NUL字節結尾。 char *strncat(char *dst, char const *src, size_t len); intstrncmp(char const *s1, char const *s2, size_t len);
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看