首页技术c语言strtok函数,c_str()函数

c语言strtok函数,c_str()函数

编程之家2026-06-151104次浏览

其实c语言strtok函数的问题并不复杂,但是又很多的朋友都不太了解c_str()函数,因此呢,今天小编就来为大家分享c语言strtok函数的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

c语言strtok函数,c_str()函数

c语言 strtok请教

strtok每调用一次改写源串的一部分,就是说每次把一个界定符置为'\0'

显然首次调用就直接将所以界定符置为'\0'更容易,但作为提供给用户的库函数,在调用的时候应该给外界带来最少的附加作用;所以麻烦的只是底层的人咯

其实一句strtok(NULL,"?,");会有两个效果; 1是返回一个字串, 2是将字串末尾的界定符置为0;也就是说其实strtok是有副作用的...

#include<string.h>

#include<stdio.h>

int main()

c语言strtok函数,c_str()函数

{

char str[]="ab?#de?#g";

char*p;

//首先我想以'#'为界定符提取字串

//期望得到"ab?""de?""g"

p= strtok(str,"#");

c语言strtok函数,c_str()函数

while(p!=NULL){

printf("%s\n", p);

p= strtok(NULL,"#");}

puts("");

//然后我又想以'?'为界定符,期望得到"ab""#de""#g"

p= strtok(str,"?");

while(p!=NULL){

printf("%s\n", p);

p= strtok(NULL,"?");}

//结果事与愿违

// ab?

// de?

// g

//

// ab

// strtok没有做到绝对方便用户

//很有可能用户的一个串会多次使用

//解决方法是用户再准备一个拷贝串

}

c++中c_str()用法,越详细越好。

应该这样用:

char c[20];

string s="1234";

strcpy(c,s.c_str());

这样才不会出错,c_str()返回的是一个临时指针,不能对其进行操作。

语法: const char*c_str();

c_str()函数返回一个指向正规C字符串的指针,内容与本string串相同.,这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string对象转换成c中的字符串样式。

注意:一定要使用strcpy()函数等来操作方法c_str()返回的指针。

扩展资料:关于上述用法种最好不要这样用

constchar*c;

std::strings="1234";

c=s.c_str();

std::cout<<c<<std::endl;//输出:1234

s="abcd";

std::cout<<c<<std::endl;//输出:abcd

上面如果继续用c指针的话,导致的错误将是不可想象的,就如:1234变为abcd。

C语言中各种函数的具体作用,要详细点的

字符处理函数

本类别函数用于对单个字符进行处理,包括字符的类别测试和字符的大小写转换

头文件 ctype.h

函数列表<>

函数类别函数用途详细说明

字符测试是否字母和数字 isalnum

是否字母 isalpha

是否控制字符 iscntrl

是否数字 isdigit

是否可显示字符(除空格外) isgraph

是否可显示字符(包括空格) isprint

是否既不是空格,又不是字母和数字的可显示字符 ispunct

是否空格 isspace

是否大写字母 isupper

是否16进制数字(0-9,A-F)字符 isxdigit

字符大小写转换函数转换为大写字母 toupper

转换为小写字母 tolower

地区化

本类别的函数用于处理不同国家的语言差异。

头文件 local.h

函数列表

函数类别函数用途详细说明

地区控制地区设置 setlocale

数字格式约定查询国家的货币、日期、时间等的格式转换 localeconv

数学函数

本分类给出了各种数学计算函数,必须提醒的是ANSI C标准中的数据格式并不符合IEEE754标准,一些C语言编译器却遵循IEEE754(例如frinklin C51)

头文件 math.h

函数列表

函数类别函数用途详细说明

错误条件处理定义域错误(函数的输入参数值不在规定的范围内)

值域错误(函数的返回值不在规定的范围内)

三角函数反余弦 acos

反正弦 asin

反正切 atan

反正切2 atan2

余弦 cos

正弦 sin

正切 tan

双曲函数双曲余弦 cosh

双曲正弦 sinh

双曲正切 tanh

指数和对数指数函数 exp

指数分解函数 frexp

乘积指数函数 fdexp

自然对数 log

以10为底的对数 log10

浮点数分解函数 modf

幂函数幂函数 pow

平方根函数 sqrt

整数截断,绝对值和求余数函数求下限接近整数 ceil

绝对值 fabs

求上限接近整数 floor

求余数 fmod

本分类函数用于实现在不同底函数之间直接跳转代码。头文件 setjmp.h io.h

函数列表

函数类别函数用途详细说明

保存调用环境 setjmp

恢复调用环境 longjmp

信号处理

该分类函数用于处理那些在程序执行过程中发生例外的情况。

头文件 signal.h

函数列表

函数类别函数用途详细说明

指定信号处理函数 signal

发送信号 raise

可变参数处理

本类函数用于实现诸如printf,scanf等参数数量可变底函数。

头文件 stdarg.h

函数列表

函数类别函数用途详细说明

可变参数访问宏可变参数开始宏 va_start

可变参数结束宏 va_end

可变参数访问宏访问下一个可变参数宏 va_arg

输入输出函数

该分类用于处理包括文件、控制台等各种输入输出设备,各种函数以“流”的方式实现

头文件 stdio.h

函数列表

函数类别函数用途详细说明

文件操作

删除文件 remove

修改文件名称 rename

生成临时文件名称 tmpfile

得到临时文件路径 tmpnam

文件访问关闭文件 fclose

刷新缓冲区 fflush

打开文件 fopen

将已存在的流指针和新文件连接 freopen

设置磁盘缓冲区 setbuf

设置磁盘缓冲区 setvbuf

格式化输入与输出函数格式输出 fprintf

格式输入 fscanf

格式输出(控制台) printf

格式输入(控制台) scanf

格式输出到缓冲区 sprintf

从缓冲区中按格式输入 sscanf

格式化输出 vfprintf

格式化输出 vprintf

格式化输出 vsprintf

字符输入输出函数输入一个字符 fgetc

字符串输入 fgets

字符输出 fputc

字符串输出 fputs

字符输入(控制台) getc

字符输入(控制台) getchar

字符串输入(控制台) gets

字符输出(控制台) putc

字符输出(控制台) putchar

字符串输出(控制台) puts

字符输出到流的头部 ungetc

直接输入输出直接流读操作 fread

直接流写操作 fwrite

文件定位函数得到文件位置 fgetpos

文件位置移动 fseek

文件位置设置 fsetpos

得到文件位置 ftell

文件位置复零位 remind

错误处理函数错误清除 clearerr

文件结尾判断 feof

文件错误检测 ferror

得到错误提示字符串 perror

实用工具函数

本分类给出了一些函数无法按以上分类,但又是编程所必须要的。

头文件 stdlib.h

函数列表

函数类别函数用途详细说明

字符串转换函数字符串转换为整数 atoi

字符串转换为长整数 atol

字符串转换为浮点数 strtod

字符串转换为长整数 strtol

字符串转换为无符号长整型 strtoul

伪随机序列产生函数产生随机数 rand

设置随机函数的起动数值 srand

存储管理函数分配存储器 calloc

释放存储器 free

存储器分配 malloc

重新分配存储器 realloc

环境通信中止程序 abort

退出程序执行,并清除环境变量 atexit

退出程序执行 exit

读取环境参数 getenv

程序挂起,临时执行一个其他程序 system

搜索和排序工具二分查找(数据必须已排序) bsearch

快速排序 qsort

整数运算函数求绝对值 abs

div

得到除法运算底商和余数

求长整形底绝对值 labs

求长整形除法的商和余数 ldiv

多字节字符函数得到多字节字符的字节数 mblen

得到多字节字符的字节数 mbtowc

多字节字符转换 wctomb

多字节字符的字符串操作将多字节串转换为整数数组 mbstowcs

将多字节串转换为字符数组 mcstowbs

字符串处理

本分类的函数用于对字符串进行合并、比较等操作

头文件 string.h

函数列表

函数类别函数用途详细说明

字符串拷贝块拷贝(目的和源存储区不可重叠) memcpy

块拷贝(目的和源存储区可重叠) memmove

串拷贝 strcpy

按长度的串拷贝 strncpy

字符串连接函数串连接 strcat

按长度连接字符串 strncat

串比较函数块比较 memcmp

字符串比较 strcmp

字符串比较(用于非英文字符) strcoll

按长度对字符串比较 strncmp

字符串转换 strxfrm

字符与字符串查找字符查找 memchr

字符查找 strchr

字符串查找 strcspn

字符串查找 strpbrk

字符串查找 strspn

字符串查找 strstr

字符串分解 strtok

杂类函数字符串设置 memset

错误字符串映射 strerror

求字符串长度 strlen

日期和时间函数

本类别给出时间和日期处理函数

头文件 time.h

函数列表

函数类别函数用途详细说明

时间操作函数得到处理器时间 clock

得到时间差 difftime

设置时间 mktime

得到时间 time

时间转换函数得到以ASCII码表示的时间 asctime

得到字符串表示的时间 ctime

得到指定格式的时间 strftime

函数库未来的发展方向

本部分用于说明各类别函数库在将来如何发展。

序号库类别头文件详细说明

1错误处理 errno.h

2字符处理 ctype.h

3地区化 local.h

4数学函数 math.h

5信号处理 signal.h

6输入输出 stdio.h

7实用工具程序 stdlib.h

8字符串处理 string.h

好了,文章到此结束,希望可以帮助到大家。

ai论文写作免费一键生成(AI生成作文的免费软件)aigc概念是什么意思,什么是概念股aigc概念股是什么意思