#include<string.h>
void *memset(void *str, int c, size_t n) | 复制字符 c(一个无符号字符)到参数 str 所指向的字符串的前 n 个字符。 |
---|---|
size_t strlen(const char *str) | 计算字符串 str 的长度,直到空结束字符,但不包括空结束字符。 |
char *strncpy(char *dest, const char *src, size_t n) | 把 src 所指向的字符串复制到 dest,最多复制 n 个字符。 |
char *strstr(const char *haystack, const char *needle) | 在字符串 haystack 中查找第一次出现字符串 needle(不包含空结束字符)的位置。 |
char *strtok(char *str, const char *delim) | 分解字符串 str 为一组字符串,delim 为分隔符。 |
strcat(dest, src) | 在dest后面,追加字符串src/添加/增加 |
#include <stdlib.h>
double atof(const char *str) | 把参数 str 所指向的字符串转换为一个浮点数(类型为 double 型)。 |
---|---|
void *malloc(size_t size) | 例如 char *str; str = (char *) malloc(15); 分配15个字节的内存并把首地址给str指针 |
字符串是常量例如不能让"qwer"等于"asdf"。
#include <stdio.h>
#include<string.h>
int main()
{
char p1[10] = "poi";
char * p2 = "qwe";
char * p3 = "asd";
printf(p1); printf(p2); printf(p3);
return 0;
}
/*
常用的定义字符串的方法有两种,数组定义和指针定义他们都是正确的,都可以用printf()打印出来
但是p1这个数组字符串是可以为左值的,就是p1字符串的值是可以改变的;
strcpy(p1,p2); //这样写没任何问题,运行之后p1的值等于"qwe", 这就是p1可以为左值
strcpy(p2,p3); //这样写就会报错,p2这种方法定义的是指针字符串即字符串常量,这种字符串的结尾"\0"是不能改变的
做左值的字符串必须有足够大的空间p1就是有10个字节,所以效果要运行strcpy(p2,p3);需要先给p2申请足够打的空间
*/