創建方式
初始化
- 字符數組:
- 創建與賦值必須在同一行
- 指定大小:未填滿部分用'\0'填充
- 用字符串初始化:末尾自動添加'\0'
- 不初始化賦值則亂值
- 字符指針:
- 創建與賦值可以不在同一行
- 未分配空間,故不可直接gets(str)
相關函數
- strlen():字符串大小
- strlen(charArray):忽略字符數組中的'\0'
- sizeof():類型大小
- sizeof(charArray):數組元素個數,'\0'也算
- sizeof(charPointer):指針字節數 == 8
- strcmp():字符串比較
- strlen(charArray, ...):只比較內容,字符數組中可以無'\0'
- strcpy():字符串賦值
- strcpy(str1, str2):把str2內容賦給str1
- 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]);
}