1.strchr与strrchr
Strchr函数用于查找指定字符在一个字符串中第一次出现的位置,然后返回指向该位置的指针。Char *strchr (const char *string,int c);
Strrchr与strchr类同只是查询的是指定字符在字符串中最后出现的位置,然后返回指向该位置的指针 char *strrchr(const char *string ,int c);
Example:
char *string="I'm a young soul in this very strange world.";
char *first_a,*last_a;
first_a=(char *)strchr(string,'a');
lr_output_message("first occurrence of a:%s",first_a);
//first occurrence of a:a young soul in this very strange world.
last_a=(char *)strrchr(string,'a');
lr_output_message("The last occurrence of a:%s",last_a);
//The last occurrence of a:ange world.
2.strcpy与strncpy
Strcpy把一个字符串复制到另一个字符串中;strncpy是把一个字符串的指定长度字符复制到另一个字符串中。
Char *strcpy(char *dest,const char *source);
Char *strncpy(char *dest,const char *source,size_t n);
Example:
char test[50];
char ntest[50];
strcpy(test,"Copies one string to another.");
lr_output_message("test=%s",test);
//test=Copies one string to another.
strncpy(ntest,"Copies the first n characters of one string to another?",30);
lr_output_message("ntest=%s",ntest);
//ntest=Copies the first n characters
3.strcmp与stricmp
用与按照字母表顺序比较2个字符串的大小;前者比较时区分字符串大小写;后者比较时不区分字符串大小写
Int strcmp(const char *string1,const char *string2);
Int stricmp(const char *string1,const char *string2)
Example:
char *string1="This ABCDEFG";
char *string2="This abcdefg";
int result;
result=strcmp(string1,string2);
lr_output_message("strcmp result=%d",result);
//strcmp result=-1
result=stricmp(string1,string2);
lr_output_message("stricmp result=%d",result);
//stricmp result=0
4.strcat与strncat
Strcat是把一个字符串复制到另一个字符串的后面,strncat是把一个字符串的指定长度字符串复制到另一个字符串的后面。
5.sprintf:
Sprintf是把一个字符串格式化后输入到另一个字符串中,然后返回写入的字符数量。
Int sprintf(char *string,const char *format_string[,args]);
String 是要写入的目标字符串,format_string是格式化的字符串,args是一系列变量表达式
Example:
char test[30];
int a=2,b=3;
int i=0;
i=sprintf(test,"Add Test:a=%d,b=%d,a+b=%d",a,b,a+b);
lr_output_message(test);
//Add Test:a=2,b=3,a+b=5
lr_output_message("i=%d",i);
//i=22写入test的字符数量
5.strlwr与strupr
Strlwr把字符串全部变成小写,strupr把字符串全部变成大写。
Char *strlwr(char *string); char *strupr(char *string);
Example:
char str[]="This is A tEst";
lr_output_message("lowstr=%s",(char *)strlwr(str));
//lowstr=this is a test
lr_output_message("uprstr=%s",(char *)strupr(str));
//uprstr=THIS IS A TEST
6.atoi与itoa
Atoi是把一个字符串转为整数:int atoi(const char *string);
把string字符串转换成整数:i=atoi(“123fkdjas”);
Itoa是把整数转化成字符串:int itoa(int value,char *string,int redix);
把数字value转换成字符串放在string里,redix是转换时的进制。
Itoa(131231,string,10);
7.strlen
用于返回指定字符串的字符个数。Size_t strlen(const char *string);
len=strlen("This is a test");
8.memcpy:
用于在内存缓存区复制数据,可以复制二进制的数据,而前面的strcpy只能复制字符串,不能复制中间存在/0的数据。
语法结构:
void memcpy(void *dest,const void *src,size_t n);
dest是目标缓存区,src是将要复制的源缓存区,n是要复制的长度
example:
char src[]="AAAAA /0 This is test./0";
char memcpy_str[60];
char strncpy_str[60];
memcpy(memcpy_str,src,60);
strncpy(strncpy_str,src,60);
lr_output_message("memcpy_str=%s",memcpy_str);
//memcpy_str=AAAAA 因为/0是字符串结束符,所以只输出了/0前面的字符
lr_output_message("strncpy_str=%s",strncpy_str);
//memcpy_str=AAAAA
lr_output_message("memcpy_str:%s",memcpy_str+8);
//memcpy_str:This is test.首位偏移8位后输出This is test
lr_output_message("strncpy_str:%s",strncpy_str+8);
//首位偏移后不输出任何东西
9.memset
函数通常用来对数据对象做初始化工作,void *memset(void *buffer,int c,size_t n);
调用memset函数后,会把buffer指向的某一块内存中的每个字节的内容全部设置为参数c所指定的ASCII值或指定字符对应的ASCII值,块的大小由第三个参数n来指定。
10.sizeof:
用来返回指定表达式、变量或者指定数据类型在内存中所占用的字节数:
sizeof(类型说明符、表达式或者数组) 或者sizeof 变量
char test[10];
struct str_test{
char str[10];
int i;
};
struct str_test mystr;
lr_output_message("/"abcde/"size=%d",sizeof "abcde" ); //"abcde"size=6
lr_output_message("12345 size=%d",sizeof(12345));//12345 size=4
lr_output_message("test size=%d",sizeof test);//test size=10
lr_output_message("mystr size=%d",sizeof(mystr));//mystr size=16