Loading

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]);
}
posted @ 2021-10-25 23:26  咪啪魔女  阅读(369)  评论(0编辑  收藏  举报