How to program C〈字元與字串〉

基本介紹

字元是程式的基本元素,每一段程式都是由字元組成而來

字元常數(char constant)是由單引號括起的字元

他也代表一個int的值,字串及一連串的字元

字串可包含字母、數字、或特殊符號(+,-,*,/,$)

字串是由雙引號括起的

C 的字串是以 NULL('\0')為結束的字元陣列

注意

1
2
3
字串是指標
字元是整數(0-255)
所以如果方法參數要字元,要宣告為 func(int c);

字串宣告有兩種

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// 字串即陣列
char color[] = "blue";
char color[] = {'b','l','u','e','\0'};
const char *colorPtr = "blue";

// 動態建立陣列
int size = 10;
int i = 0;
int *arr = malloc(size * sizeof(int));
memset(arr, 0, sizeof(int) * size);

printf("顯示元素值:\n");
for(i = 0; i < size; i++) {
printf("arr[%d] = %d\n", i, *(arr+i));
}

printf("指定元素值:\n");
for(i = 0; i < size; i++) {
arr[i] = i*10;
}

printf("顯示元素值:\n");
for(i = 0; i < size; i++) {
printf("arr[%d] = %d\n", i, *(arr+i));
}
free(arr);

字串陣列大小必須要放得下字串+結束字元

1
2
char word[20];
scanf("%s",word);

字串轉換函式

要用以下函示需要匯入stdlib

1
2
3
4
5
6
7
double          atof(const char *nPtr);
int atoi(const char *nPtr);
long atol(const char *nPtr);

double strtod (const char *nPtr, char **endPtr);
long strtol (const char *nPtr, char **endPtr, int base);
unsigned long strtoul (const char *nPtr, char **endPtr, int base);

常用函式

1
2
3
sprintf
sscanf
strcpy

參考

參考