C語言string操作


創建方式

  • 字符數組:空間已定
  • 字符指針:未分配空間

初始化

  • 字符數組:
    • 創建與賦值必須在同一行
    • 指定大小:未填滿部分用'\0'填充
    • 用字符串初始化:末尾自動添加'\0'
    • 不初始化賦值則亂值
  • 字符指針:
    • 創建與賦值可以不在同一行
    • 未分配空間,故不可直接gets(str)

相關函數

  1. strlen():字符串大小
    • strlen(charArray):忽略字符數組中的'\0'
  2. sizeof():類型大小
    • sizeof(charArray):數組元素個數,'\0'也算
    • sizeof(charPointer):指針字節數 == 8
  3. strcmp():字符串比較
    • strlen(charArray, ...):只比較內容,字符數組中可以無'\0'
  4. strcpy():字符串賦值
    • strcpy(str1, str2):把str2內容賦給str1
  5. strtok():字符串切分
    • strtok(str1, char* tag):將str1按tag划分
    • 示例代碼
#include<stdio.h>
#include<string.h>

int main()
{
    char str[100];
    char strs[100][100];
    int i,n=0;
    gets(str);
    /*遍歷方式*/
    char* p = strtok(str, " ");
    while(p)
    {
        strcpy(strs[n++], p);
        p = strtok(NULL, " ");
    }
    for(i = 0; i < n; i++)
      printf("%s\n",strs[i]);
}
#include<stdio.h>
#include<string.h>
int main()
{
    char a[] = {'a','b','c'};
    char *b ;
    char c[] = {'a','b','c','\0'};
    b = "abc";
    int i,j;
    printf("%d\n", strlen(a));
    printf("%d\n", strlen(b));
    printf("%d\n\n", strlen(c));

    printf("%d\n", sizeof(a));
    printf("%d\n", sizeof(b));
    printf("%d\n", sizeof(c));
    printf("%d\n\n", strcmp(a,c));
    
    for(i = 0; i < strlen(b); i++)
        printf("%c ", b[i]);
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM