天天看點

C/C++實踐筆記 026字元串實踐

1.字元串概念

C語言沒有專門的“字元串”類型,用字元數組表示

strlen求字元串長度

按%s來整體顯示必須要有'\0'

單個顯示不需要'\0'

char str[5]={'a','b','c','d'};

指針循環輸出字元串的辦法,可以改變指針的位置輸出不同的字元

2.字元串初始化

二維數組,每一個元素是一個一維數組,一維數組存儲了字元串,字元串可以修改

指針數組,每一個元素都是一個指針,存儲了代碼區的字元串常量位址,不可以修改

3.字元串的兩種風格差別

數組名是一個常量,不可以指派

根據指針初始化字元串必須先開辟空間,指向代碼區不可以,不初始化也不可以

4.qsort

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void fill(int *a,int n)
{
    time_t ts;
    unsigned int num = time(&ts);
    srand(num);
    for (int i = 0; i < n; i++)
    {
        a[i] = rand() % n;
    }

}

void print(int *a, int n)
{
    for (int i = 0; i < n; i++)
    {
        printf("\n%d", a[i]);
    }

}
int com(const void *p1, const void *p2)
{
    const int *pint1 = p1;
    const int *pint2 = p2;
    if (*pint1 == *pint2)
    {
        return 0;
    }
    else if (*pint1 > *pint2)
    {
        return 1;
    }
    else
    {
        return -1;
    }

}
void main()
{    
    int a[100];
    fill(a, 100);
    print(a, 100);
    qsort(a,100,sizeof(int),com);
    print(a, 100);
    system("pause");
}      

5.字元串常見函數:strlen strcpy strstr

strlen求長度函數

strcpy字元串拷貝函數,字元串拷貝不能直接指派,要用到這個函數

strstr字元串檢索在另一個字元串是否存在