您的位置:首页 > 编程语言 > C语言/C++

c 语言中一些特殊函数的整理

2017-07-19 17:32 176 查看
1、gets( )函数

//gets认为回车是输入结束标示,空格不是输入结束标示,所以用gets这个函数就可以实现输入带空格的字符串

//gets和scanf一样存在缓冲区溢出的问题

int main()

{
char ch[100] = {0};

gets(ch);

int len = 0;
while (ch[len])
len++;

printf ("%s", ch);

return 0;



2、fgets( )函数

int main()

{

    char s[100] = {0};

    fgets(s,  sizeof(s)/sizeof(char),     stdin); 

// 第一个参数是char的数组,第二个参数是数组的大小,单位:字节,

// 第三个参数stdin代表标准输入的意思

// fgets是安全的,不存在缓冲区溢出的问题,只要保证第二个参数小于等于数组实际的大小,就能避免缓冲区溢出问题

// fgets会将回车键读到数组里

    printf("%s",s);

    return 0;

}

3、puts( )函数

puts函数打印字符串,与printf不同,puts会在最后自动添加一个’\n’

4、fputs( )函数

fputs是puts的文件操作版本,

char s[] =
"hello world";

fputs(s, stdout);

5、strlrn( )函数

得到字符串长度;

char s[100] ="hello world";

int len = strlen(s);//得到字符串长度,返回一个字符串中有效字符的数量(不包含字符串结尾的0)

6、
(1)、strcat()字符追加函数

size_t  strcat(char * _Str1,
const char * _Str2);

将参数_Str2追加到_Str1后尾

(2)、strncat( ) 字符串有限追加

size_t strncat(char * _Str1,
const char * _Str2, size_t len);

7、strcmp字符串比较
int strcmp(const char * _Str1,const char * _Str2);

比较两个字符串是否相等,相等返回0,不等返回非0

8、strcopy( ) 字符串拷贝

char *strcpy(char * _Str1,
const char * _Str2);

将参数_Str2拷贝到参数_Str1中

[b]9、 sprintf,格式化字符串[/b]

和printf函数功能类似,printf函数将格式化结果输出到屏幕,sprintf将格式化结果输出到字符串

 

[b]10、 sscanf函数[/b]
sscanf类似于scanf函数,,scanf从键盘读取用户输入,sscanf从指定格式化字符串读取输入

 

[b]11、 strchr查找字符[/b]
char * strchr(char *_Str,int _Ch);

在参数_str中查找参数_Ch指定字符,找到返回字符_Ch在_Str中所在位置,没有找到返回NULL;

 

[b]12、strstr查找子串[/b]
char * strstr(char *_Str,const char *_SubStr)

在参数_str中查找参数_SubStr指定子串,找到返回子串在_Str中所在位置,没有找到返回NULL;

13、字符串分割 strtok( )

字符在第一次调用时strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL每次调用成功则返回指向被分割出片段的指针

char buf[] =
"abc@defg@igk";

char *p = strtok(buf,
"@");

while (p)

{

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

p = strtok(NULL,
"@");

}

14、ato( ) 转数据类型的函数,需要包含头文件stdlib.h

例如:atoi(char b);就是把char 型的 b变量转换成int 型的;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 函数