1.字符串数组和字符串指针
#include<stdio.h>#include<string.h>#include <stdlib.h>int main(void){char* s1 = "hello world";char s2[] = "hello world";//s1[2] = 'b'; //不可写s2[2] = 'b';printf("s1的地址是%p\r\n", s1);printf("s2的地址是%p\r\n", s2);system("pause");return 0;}
2.二维字符串数组的定义
#include<stdio.h>#include<string.h>#include <stdlib.h>int main(void){char a[][10] = { "" }; //相当于a[0]--->char [10] 字符串长度小于10char *a[] = { "" }; //相当于a[0]--->char *system("pause");return 0;}
3.strlen/sizeof区别
#include<stdio.h>#include<string.h>#include <stdlib.h>int main(){char line[] = "asdasd";printf("strlen = %lu\n", strlen(line));printf("sizeof = %lu\n", sizeof(line));system("pause");return 0;}
4.strcmp
#include<stdio.h>#include<string.h>#include <stdlib.h>int main(){char* s1 = "Asd";char* s2 = "asd";if (strcmp(s1, s2) == 0){printf("s1 = s2\n");}else{printf("%d\n", strcmp(s1, s2));}system("pause");return 0;}
5.strcpy
复制字符串
#pragma warning(disable:4996)#include<stdio.h>#include<string.h>#include <stdlib.h>int main(){char s1[] = "Asd";char *s2 = (char *)malloc(strlen(s1) + 1);strncpy(s2, s1,4);//安全一些只能拷贝strlen(s1) + 1个字符printf("s2 = %s",s2);system("pause");return 0;}
6.strchr/strsht
char s1[] = "hello";char *p = strchr(s1,'l');输出"llo"


