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

在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() 检查是否是可打印字符

时间: 2024-10-13 13:20:49

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

Python 4.函数参数 返回值与文档查看(基础篇)

本章大纲:(以后文笔格式都会在开头有个大纲) -五大参数- 普通参数 默认参数 关键字参数 收集参数 收集参数解包问题 关键字收集参数 关键字收集参数解包问题 -返回值- -文档查看- -普通参数- 普通参数又名为位置参数,没有默认值,根据具体使用位置进行传值 普通参数和默认参数的不同 普通参数就是如同名字一般普通,没有默认值 而默认参数则可以规定默认值(也就是规定了默认值的普通参数而已) 但是默认参数要牢记一点:默认参数必须指向不变的对象值 请看下面例子 def add_end(L=[]):

CentOS6.4下使用默认的文档查看器打开PDF文档乱码的解决方案

 最近在CentOS6.4下使用其默认的文档查看器打开PDF文档时出现乱码的方块,有两种方法可以解决.    方法一:修改/etc/fonts/conf.d/49-sansserif.conf文件,如下: [html] view plaincopy <?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <!-- If the f

sharepoint 2013 使用Office Web Apps 查看或编辑office文档时页面出现:“抱歉,出现了问题”错误

sharepoint 使用Office Web Apps 查看或编辑office文档时页面出现:"抱歉,出现了问题"错误 该问题是由于使用了系统账户登录站点而导致的. 更换其他账户登录问题解决. 其他错误还有下面的: 如果 Office Web Apps 在与 SharePoint 2013 结合使用时未正常工作,请查看以下症状并展开相应的标题以查找纠正步骤. 问题:当您选择 SharePoint 库中的"新文档"链接时,系统提示您上载某个文档而不是为您提供用于创建

一个GO语言 的文档中文译本网站

一个GO语言 的文档中文译本网站: 1. <学习Go语言>中文版:http://mikespook.com/learning-go/ 2.GITHUB :https://github.com/mikespook/Learning-Go-zh-cn 一个GO语言 的文档中文译本网站,布布扣,bubuko.com

通过cmd命令查看Python库、函数和模块的帮助文档与介绍

dir函数式可以查看对象的属性 使用方法很简单,举os类型为例,在Python命令窗口输入 dir(‘os’) 即可查看os模块的属性 打开cmd命令窗口 输入python(注意:计算机需要有Python环境,配置好Python环境变量) 输入dir('os')命令 如何查看对象某个属性的帮助文档? 如要查看’os’的split属性,可以用__doc__, 使用方法为print(’os’.split.__doc__) print(’os’.split.__doc__) 查看对象的某个属性还可以用

学会查看goole的sdk文档

之前一直在看google的sdk帮助文档,有一些小技巧总是忘记,因此再次总结一下: 1.离线查看sdk帮助文档的方法 在学习sdk的文档时候由于会访问google的一些网站导致打开很慢或者打不开,目前我知道的3种方法: (1)修改文档中的文件,将访问goole的一些字段屏蔽掉或者改为访问本机. (2)将浏览器置为脱机状态或者简单粗暴拔掉网线. (3)参看的别人博客里,在github上下载大神写的google浏览器的插件,可以帮你屏蔽掉google的一些网站同时可以浏览其他的网站,明显优于前两种方

C# 字符串操作,可空类型,文档注释,嵌套类型

字符串 字符串是Unicode字符串数组,且是不可变的 这种操作不会影响到原来的字符串,它会新添加一个副本. 有关Split的操作 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Reflection; using System.Runtime.CompilerServices; usin

C语言编程文档pdf

1.C语言进阶重点难点与疑点解析_2012 链接:https://pan.baidu.com/s/1awXKZV2daCKnMIuedikxEg 提取码:pnqw 原文地址:https://www.cnblogs.com/seamoon23/p/11794781.html

在线查看PDF和office文档的设计与实现

楼主最近在弄一个在线预览附件的小功能点,在开发过程中走了不少弯路,现总结了一些方法,供广大同行使用,节约时间,少走弯路 话不多说,要实现这个小功能,目前主要是有如下3种比较可行的方式,先说实现的思路设计与他们的优缺点 第一种:先把附件office文档(DOC,PPT,EXCLE,TXT)转为PDF格式,这里需要用一个OpenOffice的东东来转换,或者libreoffice也是可以的,然后把PDF转为SWF方式,然后在前台页面使用Flexpaper插件进行播放即可实现.这种方式的好处在于可以兼