C语言中提供了许多用来处理字符串的函数
1、puts gets
puts函数将以一个'\0'结尾的字符串输出到屏幕上去
gets从终端输入一个字符串到字符串数组中,他的返回值是该字符串数组的首地址
char* str = "manman";
puts(str);
char str_arr[] = "who";
puts(str_arr);
char str_get[10];
bzero(str_get,sizeof(str_get));
gets(str_get);
puts(str_get);
2、strcpy strncpy
只使用strncpy。
strcpy是不安全的,存在安全漏洞,容易被黑客所利用。
char* s = "Hello world";
char a[20];
bzero(a,sizeof(a));
strcpy(a,s);
printf("a=%s, len=%d\n", a, strlen(a));
char* t = "manman";
char b[10];
bzero(b, sizeof(b));
strncpy(b, t, 3);
printf("b=%s, len=%d\n", b, strlen(b));
3、strcat和strncat
strcat是不安全的,存在安全漏洞,容易被黑客所利用。
一般使用strncat。
char *strncat(char *dest, const char *src, size_t n);
strncat把src所指向的字符串的前n个字符串添加到dest结尾处(覆盖结尾处的'\0'),并添加'\0'
strcat 是string catenate的缩写
char d[20] = "Hello ";
char* s = "xx";
strncat(d, s, strlen(s));
printf("%s,---,%d\n", d, strlen(d));
4、strcmp strncmp,字符串比较
int strncmp(char *s1, char *s2, int n); s1减去s2
char *s1 = "cc";
char *s2 = "cd";
int r = strcmp(s1, s2);
printf("s1-s2 = %d\n", r);
5、strlen
是string length的缩写
返回的是字符串的实际长度,不包括'\0'在内
6、
从字符串s1中寻找s2第一次出现的位置,返回指向第一次出现s2位置的指针
char *s1 = "man xx";
char *s2 = "an";
char *p = NULL;
p = strstr(s1, s2);
if(p != NULL)
{
printf("%s\n", p);
}
p= strchr(s1, 'n');
if(p != NULL)
{
printf("%s\n", p);
}