一些函数 C/C++

memcpy

memcpy 函数原型如下:

void *memcpy(void *dest, void *src, unsigned int count);

功能:

从源 src 所指的内存地址的起始位置开始拷贝 n 个字节到目标
dest 所指的内存地址的起始位置中。
使用 memcpy 函数要包含头文件 string.h。
示例 1:从数组 a 复制到 k 个元素到数组 b

memcpy(b,a,sizeof(int)*k); 

示例 2:若数组 a 和 b 都是浮点型的,复制时要写成:

memcpy(b,a,sizeof(double)*k);

示例 3:如果需要把数组 a 全部复制到数组 b 中,可以写成:

memcpy(b,a,sizeof(a));

memset

memset(a,0,sizeof(a)) 的作用是把数组 a 清零它也在 string.h中定义。
使用 memset 比 for 循环更方便、快捷。
memset 函数原型如下:

void *memset(void *buffer, char c, int count);

功能:把 buffer 所指内存区域的前 count 个字节设置成字符 c
第三个参数指的是字节的个数,返回指向 buffer 的指针
在程序中需包含头文件:#include<string.h>
由 memset 函数的头文件可以知道,其主要是对字符数组进行设置,
当然也可以对数组进行初始赋值(一般是 0,-1)。

atoi

int atoi(char *s)
它表示将字符串 s 中的内容转换成一个整型数返回,如字符串“1234”,则函数返
回值是 1234。

itoa

在 stdlib.h 中有一个函数 itoa,它的函数原型如下:

char *itoa(int value,char *string,int radix) 

它表示将整数 value 转换成字符串存入 string, radix 为转换时所用基数(保
存到字符串中的数据的进制基数 2 8 10 16),返回指向转换后的字符串的指针 。
例如,itoa(32,string,10)是将 32 变成十进制数一个字符串“32”,并返回
指向这个字符串的指针;itoa(32,string,16)是将 32 变成十进制数一个字符串
“20”,并返回指向这个字符串的指针。

 

sprintf

sprintf是个变参函数,定义如下:

int sprintf( char *buffer, const char *format [, argument] ... );

除了前两个参数类型固定外,后面可以接任意多个参数。

sprintf(buf,"%d%d%d%d%d",abc,de,x,y,z);

语句的功能是将整数abcdexyx打印成字符串存储在串buff中。
可以直接接受其返回值:

int len=sprintf(buf, "%d%d%d%d%d", abc, de, x, y, z);

strchr

strchr函数定义如下:

char *strchr(const char *s,char c);</span>

功能:查找字符串s中首次出现字符c的位置。它的返回值是返回首次出现c的位置的指针,如果s中不存在c则返回NULL。包含此函数的头文件是string.h

例如,本程序的if语句中strchr(s, buf[i])的功能是查找字符串s中首次出字符buf[i]的位置。如果strchr(s, buf[i])==NULL,则表明字符串s中没有buf[i]的字符。

 

sprintf函数、printf函数、fprintf函数的区别

printf输出到屏幕,fprintf输出到文件,而sprintf输出到字符串。需要注意是应该保证写入的字符串有足够的空间。

提示:C语言中的字符串是‘\0’结尾的字符数组,可以用strlen(s)返回字符串s中结束标记之前的字符个数。字符串中的各个字符是:s[0],s[1],…,s[strlen(s)-1]

提示:由于字符串的本质是数组,它也不是“一等公民”,只能用strcpy(a,b)strcmp(a,b)strcat(a,b)来执行“赋值”、“比较”和“连接”操作。而不能用===<=+等运算符。上述函数都在string.h中声明。

提示:但编译选项-Wall编译程序时,会给出很多(但不是所有)警告信息,以帮助程序员查错。但并不能解决所有的问题:有些“错误”程序是合法的,只是这些动作不是你所期望的。

C语言中的gets(s)存在缓冲区溢出漏洞,不推荐使用。

代替者fgets?教程http://C语言中的gets(s)存在缓冲区溢出漏洞,不推荐使用

 

 

字母操作

isalpha

原型:int isalpha(int ch

用法:头文件加入#include <cctype>(C语言使用<ctype.h>)

功能:判断字符ch是否为英文字母,当ch为英文字母a-zA-Z时,在标准c中相当于使用“isupper(ch)||islower(ch)”做测试,返回非零值(不一定是1),否则返回零。

 

isupper

原型:extern int isupper(int c);

头文件:<cctype>( C语言使用<ctype.h>)

功能:判断字符c是否为大写英文字母

说明:当参数c为大写英文字母(A-Z)时,返回非零值,否则返回零。

附加说明: 此为宏定义,非真正函数。

 

islower

头文件:#include<cctype>( C语言使用<ctype.h>)

用法:int islower(int c)

函数说明:检查参数c是否为小写英文字母。

返回值:若参数c为小写英文字母,则返回TRUE,否则返回NULL(0)

附加说明:此为宏定义,非真正函数。

 

 

toupper

原型:extern int toupper(int c);

用法:#include <ctype.h>

功能:将字符c转换为大写英文字母

说明:如果c为小写英文字母,则返回对应的大写字母;否则返回原来的值。

 

 

tolower

功 能: 把字符转换成小写字母,非字母字符不做出处理

头文件:VC6.0可以是ctype.h或者stdlib.h,常用ctype.h

用 法: int tolower(int c);

说明:如果c为大写英文字母,则返回对应的小写字母;否则返回原来的值。

 

isdigit

原型:extern int isdigit(char c);

用法:#include <ctype.h>

功能:判断字符c是否为数字

说明:c为数字0-9时,返回非零值,否则返回零。

附加说明:此为宏定义,非真正函数。

 

isprint

原型:extern int isprint(char c);

用法:#include <ctype.h>

功能:判断字符c是否为可打印字符(含空格)

说明:c为可打印字符(0x20-0x7e)时,返回非零值,否则返回零。

附加说明:此为宏定义,非真正函数。

 

提示:头文件ctype.h中定义的isalphaisdigitisprint等工具可以用来判断字符的属性,而touppertolower等工具可以用来转换大小写。

说明:

1)isalpha(c)用来检查c是否为字母,如果是字母,则返回1;否则返回0

2)isdigit(c)用来检查c是否为数字(09),如果是数字,则返回1;否则返回0

3)isprint(c)用来检查c是否为可打印字符(不包括空格),其ASCII码值在0x210x7e之间,如果是可打印字符,则返回1;否则返回0

4)toupper(c)用来将c字符转换为大写字母,返回c对应的大写字母。

5)tolower(c)用来将c字符转换为小写字母,返回c对应的小写字母。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇