《周立功《程序设计与数据结构》:字符串函数.doc》由会员分享,可在线阅读,更多相关《周立功《程序设计与数据结构》:字符串函数.doc(1页珍藏版)》请在三一文库上搜索。
1、周立功程序设计与数据结构:字符串函数本文为程序设计基础,本文为1.8.2 1.字符串函数strlen()函数size_t strlen(const char *s);1 void fit(char *string, unsigned int size)if(strcmp(s1, s2) = 0) strcat()函数char *strcat(char *s1, char const *s2);char *strncat(char *s1, char const *s2, size_t n);strcmp()函数和strncmp()函数int strcmp(char const *s1, cha
2、r const *s2);if(strcmp(word, hello) = 0) puts(bye)int strncmp(char const *s1, char const *s2, size_t n);strcpy()函数pts2 = pts1;char *strcpy(char *s1, char const *s2);strncpy()函数char *strncpy(char *s1, char const *s2, size_t n);typedef char *striing;int strlen(string cStr);溢出问题使用gets()函数从标准输入读入字符串容易导致缓冲区溢出,而误用strcpy()和strcat()同样如此。因为使用某些函数可能造成攻击者用格式化字符串攻击的方法访问内存,甚至能够注入代码,所以C11版本加入了strcat_s()和strcpy_s()函数,如果发生缓冲区溢出,它们会返回错误。printf()、fprintf()和snprintf()这些函数都接受格式化字符串作为参数,避免这类攻击的一种简单方法是不要将用户提供的格式化字符串传给这些函数。