到目前为止,C语言作为我的工作的方式已经整整三年,照说应该很熟练才是,但事实非如此,一些常用的操作根本没去记,要用的时候才去查,就导致了编程变慢了,还是记一记吧。

1、meset, memcmp,memcpy,strcpy,这几个熟了,pass

2、

size_t strlen(const char *s);//取字符串的长度

C语言的字符串就是一个数组,并以'\0'结束,比如strlen("hello")返回值为5,而sizeof("hello")则为6。strlen没把'\0'算进去。java 的字符串是一个对像,其实也就是一段内存了,然以类的形式把字符串的操作函数封装了进去。字符串在java的内部的表示方式与c不同,java字符串的第一字节是表示该字符串的长度,后面才是真正的字符串,所以java字符串的操作不会出现内存越界的情况。

3、

void *memmove(void *dest, const void *src, size_t n);

 该函数与memcpy差不多,如果src 与dest 所指的内存重叠,memcpy不保证复制的正确性,但是memmov可以。


4、

char *strcat(char *dest, const char *src);//联接字符串,遇到'\0'时结束
char *strncat(char *dest, const char *src, size_t n);//联接n个字节的字符串
/*无论是strcat 还是 strncat 都要保正dest所指向的内存足够大*/

 

5、

int strcmp(const char *s1, const char *s2);
int strncmp(const char *s1, const char *s2, size_t n);

6、

//忽略大小写
int strcasecmp(const char *s1, const char *s2);
int strncasecmp(const char *s1, const char *s2, size_t n);
//搜索字符,如果找到,主返回字符c所在所指针,否则返回NULL
char *strchr (const char *s, int c);
char *strrchr (const char *s, int c);/*从右到左找字符C*/

7、

/*查找子串,如果找到,返回子串的开头,否则返回NULL*/
char *strstr(cost char *haystack, const char *needle);

8、

/*分割字符串,返回下一个Token的指针,如果没有了,返回NULL*/
char *strtok(char *str, const char *delim);/*不可重入*/
char *strtok_r (char *str, constrchar *delim, char **saveptr);/*可重入*/


 

 

 

posted on 2012-09-04 23:14  林德伟  阅读(236)  评论(0编辑  收藏  举报