字符串聲明:
char str[10] = {'h','e','l','l','o','\0'};// 讀寫(xiě)
char str1[10] = "hello";
char *str2 = "hello";// 只讀
輸入字符串
printf("輸入一個(gè)字符串:\n");
char str[10];
->1
gets(str);
printf("str=%s", str);
->2
scanf("%s",str);
printf("str=%s", str);
->3
fgets(str, 10, stdin);
printf("str=%s", str);
字符數(shù)組賦值转锈,計(jì)算長(zhǎng)度
// 給字符數(shù)組賦值
char str[10] = "abc";
for (int i = 0; i < 10; ++i) {
str[i] = "12345678\09"[i];
}
printf(str);
strcpy(str,"aligadou\n");
printf(str);
printf("%lu\n", sizeof(str));
printf("%lu\n", strlen(str));
-> 自定義計(jì)算直砂,實(shí)際不這么用
int mystrlen(char *str) {
int i = 0;
while (*(str + (++i)));
return i;
}
字符串拼接,比較
void mystrcat(char *s1,char *s2){
while(*s1) s1++;
while(*s1++ = *s2++);
}
-> 這里只能用字符數(shù)組
char s1[] = "abc";
char s2[] = "123";
mystrcat(s1,s2);
printf("%s",s1);
-> 指針?lè)峙鋬?nèi)存方式
char * s4 = (char*)calloc(10, sizeof(char));
scanf("%s",s4);
printf(s4);
free(s4);
-> strcpy
char ms[10] = "11111\0";
strncpy(ms, "123456",3);
-> 略有不同
strcpy(ms,"2er");
printf(ms);
printf("%d\n",strcmp("abcf","abce"));