码迷,mamicode.com
首页 > 编程语言 > 详细

C字符串处理函数——查看C语言帮助文档

时间:2015-07-08 00:29:53      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:

在C语言中,平时对字符串的操作的是很多的,了解下常用的字符串函数会使 c 编程变得很快捷!这里适当整理一下,方便以后参考。使用时,会用到大量指针的操作,注意加头文件:#include <string.h>

 一、str 系列

1.strstr

char * strstr( const char * str1, const char * str2 );
功能:从字符串 str1 中寻找 str2 第一次出现的位置(不比较结束符NULL),如果没找到则返回NULL。

例程:

int main ()
{
    char str[] = "This is a simple string";
    char *pch;    
    pch = strstr(str, "simple");  //pch指向查找到的第一个字符的位置    
    puts(pch);
    puts(str);
    return 0;
}
输出:
sample string
This is a sample string

2.strchr

char * strchr( const char *str, char ch );
功能:查找字符串 str 中首次出现字符 ch 的位置
说明:返回首次出现 ch 的位置的指针,如果 str 中不存在 ch 则返回NULL。

例程:

char str[] = "This is a simple string";
char *pch;
pch = strchr(str, ‘s‘);
while (pch != NULL)
{ printf("found at %d th\n", pch - str + 1);  //str是地址开始处,输出结果从1数起 pch = strchr(pch + 1, ‘s‘);  //从下一位置继续查找 }

输出:

found at 4 th
found at 7 th
found at 11 th
found at 18 th

3.strcpy

char * strcpy( char * dest, const char * src );

功能:把 src 所指由NULL结束的字符串复制到 dest 所指的数组中。
说明:src 和 dest 所指内存区域不可以重叠且 dest 必须有足够的空间来容纳 src 的字符串。返回指向 dest 结尾处字符(NULL)的指针。

类似的:strncpy

char * strncpy( char * dest, const char * src, size_t num );

4.strcat

char * strcat ( char * dest, const char * src );

功能:把 src 所指字符串添加到 dest 结尾处(覆盖dest结尾处的‘\0‘)并添加‘\0‘。
说明:src 和 dest 所指内存区域不可以重叠且 dest 必须有足够的空间来容纳 src 的字符串。
返回指向 dest 的指针。

类似的: strncat

char * strncat ( char * dest, const char * src, size_t num ); 

5.strcmp

int strcmp ( const char * str1, const char * str2 );

功能:比较字符串 str1 和 str2。
说明:
当s1<s2时,返回值<0
当s1=s2时,返回值=0 
当s1>s2时,返回值>0

类似的:strncmp

int strncmp ( const char * str1, const char * str2, size_t num ); 

6.strlen

size_t strlen ( const char * str );

功能:计算字符串 str 的长度
说明:返回 str 的长度,不包括结束符NULL。(注意与 sizeof 的区别)

类似的: strnlen

size_t strnlen(const char *str, size_t maxlen);

7.strtok

extern char *strtok( char *s, const char *delim );

功能:分解字符串为一组标记串。s为要分解的字符串,delim为分隔符字符串(根据字符串中的字符分割)。

说明:strtok()用来将字符串分割成一个个片段。当strtok()在参数s的字符串中发现到参数delim的分割字符时则会将该字符改为 ‘\0’ 字符。在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL。每次调用成功则返回被分割出片段的指针。当没有被分割的串时则返回NULL。所有delim中包含的字符都会被滤掉,并将被滤掉的地方设为一处分割的节点。

例程:

int main (void)
{
    char str[] = "- This, a sample string.";
    char *pch;
    printf("Splitting string \"%s\" into tokens:\n", str);
    pch = strtok(str," ,.-");
    while (pch != NULL)
    {
        printf("%s\n", pch);
        pch = strtok(NULL, " ,.-");
    }
    printf("at the end: %s", str);
    return 0;
}

结果:
Splitting string "- This, a sample string." into tokens:
This
a
sample
string
the end: - This

二、mem 系列

1.memset

void * memset ( void * ptr, int value, size_t num );

功能:把 ptr 所指内存区域的前 num 个字节设置成字符 value。
说明:返回指向 ptr 的指针。可用于变量初始化等操作 

2.memcpy

void * memcpy ( void * destination, const void * source, size_t num );

类似 strncpy。区别:拷贝指定大小的内存数据,而不管内容(不限于字符串)。 

3.memcmp

int memcmp ( const void * ptr1, const void * ptr2, size_t num );

类似 strncmp 

4.memchr

void * memchr ( const void *buf, int ch, size_t count);

功能:从 buf 所指内存区域的前 count 个字节查找字符 ch。
说明:当第一次遇到字符 ch 时停止查找。如果成功,返回指向字符 ch 的指针;否则返回NULL。

类似于strchr


三、字符串到数值类型的转换

 

 

 

 

 

四、字符检查 

isalpha() 检查是否为字母字符 
isupper() 检查是否为大写字母字符 
islower() 检查是否为小写字母字符 
isdigit() 检查是否为数字 
isxdigit() 检查是否为十六进制数字表示的有效字符 
isspace() 检查是否为空格类型字符 
iscntrl() 检查是否为控制字符 
ispunct() 检查是否为标点符号 
isalnum() 检查是否为字母和数字 
isprint() 检查是否是可打印字符 

 

C字符串处理函数——查看C语言帮助文档

标签:

原文地址:http://www.cnblogs.com/shih/p/4628846.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!