sprintf(),sscanf(),memset(),memcpy(),isalpha(),isdigit(),isprint(),,toupper(),tolower(),fgets(),atoi(),strchr()
ceil(),floor()
一、sprintf():把格式化的数据写入某个字符串缓冲区
返回值:返回写入buffer 的字符数,出错则返回-1. 如果 buffer 或 format 是空指针,且不出错而继续,函数将返回-1
例:int len=sprintf(s,"%d",x);返回的是字符串s的长度。注意:数组s的类型必须是char!
sprintf(s, "%d", 123); //把整数123 打印成一个字符串保存在s 中,产生"123"
char buf[60]={0};
char*who="I";
char*whom="CSDN";
sprintf(buf,"%slove%s.",who,whom);
printf("%s",buf);
输出结果:"IloveCSDN."
输出结果 :
Output:
String: computer
Character: l
Integer: 35
Real: 1.732053
character count = 79
二、sscanf:读取格式化的字符串中的数据。
char buf[512];//注意数组的类型
sscanf("123456 ", "%s", buf);
printf("%s\n", buf);
结果为:123456
sscanf("123456 ", "%4s", buf);
printf("%s\n", buf);
结果为:1234
sscanf("123456 abcdedf", "%[^ ]", buf);
printf("%s\n", buf);
结果为:123456
sscanf("123456abcdedfBCDEF", "%[1-9a-z]", buf);
printf("%s\n", buf);
结果为:123456abcdedf
sscanf("123456abcdedfBCDEF", "%[^A-Z]", buf);
printf("%s\n", buf);
结果为:123456abcdedf
给定一个字符串"hello, world",仅保留"world"。(注意:“,”之后有一空格)
sscanf(“hello, world”, "%*s%s", buf);
printf("%s\n", buf);
结果为:world
P.S. %*s表示第一个匹配到的%s被过滤掉,即hello被过滤了,
如果没有空格则结果为NULL。
%[a-z] 表示匹配a到z中任意字符,贪婪性(尽可能多的匹配)
%[aB'] 匹配a、B、'中一员,贪婪性
%[^a] 匹配非a的任意字符,并且停止读入,贪婪性
三、memcpy()函数:从数组a中复制k个元素到数组b中
例:
int a[1000],b[1000];
memcpy(b,a,sizeof(int)*k);
把数组a中全部元素复制到数组b中
int a[1000],b[1000];
memcpy(b,a,sizeof(a));
四、memset()函数:对数组进行清零操作
例:char a[1000];
五、fgets():函数:一次性读取一整行,遇到换行结束。
例:char a[1000],b[1000];
fgets(a,sizeof(b),stdin);
六、isalpha(a):判断a是否为字母,是返回非零。
isdigit(a):判断a是否为阿拉伯数字,是返回非零。
isprint(a):判断a是否可打印,是返回非零。
char a;
toupper(a):将数组a中的字母转换成大写形式
strupr(a):将数组a中的字母转换成大写形式
tolower(a):将数组a中的字母转换成小写形式
ceil(),floor()
一、sprintf():把格式化的数据写入某个字符串缓冲区
返回值:返回写入buffer 的字符数,出错则返回-1. 如果 buffer 或 format 是空指针,且不出错而继续,函数将返回-1
例:int len=sprintf(s,"%d",x);返回的是字符串s的长度。注意:数组s的类型必须是char!
sprintf(s, "%d", 123); //把整数123 打印成一个字符串保存在s 中,产生"123"
char buf[60]={0};
char*who="I";
char*whom="CSDN";
sprintf(buf,"%slove%s.",who,whom);
printf("%s",buf);
输出结果:"IloveCSDN."
sprintf(s,"%-*d",4,'A');//产生"65"
sprintf(s,"%#0*X",8,128);//产生"0X000080","#"产生0X
sprintf(s,"%*.*f",10,2,3.1415926);//产生"3.14"
#include <stdio.h>
int main( void )
{
char buffer[200], s[] = "computer", c = 'l';
int i = 35, j;
float fp = 1.7320534f;
// 格式化并打印各种数据到buffer
j = sprintf( buffer, " String: %s\n", s ); // C4996
j += sprintf( buffer + j, " Character: %c\n", c ); // C4996
j += sprintf( buffer + j, " Integer: %d\n", i ); // C4996
j += sprintf( buffer + j, " Real: %f\n", fp );// C4996
printf( "Output:\n%s\ncharacter count = %d\n", buffer, j );
}
输出结果 :
Output:
String: computer
Character: l
Integer: 35
Real: 1.732053
character count = 79
二、sscanf:读取格式化的字符串中的数据。
char buf[512];//注意数组的类型
sscanf("123456 ", "%s", buf);
printf("%s\n", buf);
结果为:123456
sscanf("123456 ", "%4s", buf);
printf("%s\n", buf);
结果为:1234
sscanf("123456 abcdedf", "%[^ ]", buf);
printf("%s\n", buf);
结果为:123456
sscanf("123456abcdedfBCDEF", "%[1-9a-z]", buf);
printf("%s\n", buf);
结果为:123456abcdedf
sscanf("123456abcdedfBCDEF", "%[^A-Z]", buf);
printf("%s\n", buf);
结果为:123456abcdedf
给定一个字符串"hello, world",仅保留"world"。(注意:“,”之后有一空格)
sscanf(“hello, world”, "%*s%s", buf);
printf("%s\n", buf);
结果为:world
P.S. %*s表示第一个匹配到的%s被过滤掉,即hello被过滤了,
如果没有空格则结果为NULL。
%[a-z] 表示匹配a到z中任意字符,贪婪性(尽可能多的匹配)
%[aB'] 匹配a、B、'中一员,贪婪性
%[^a] 匹配非a的任意字符,并且停止读入,贪婪性
三、memcpy()函数:从数组a中复制k个元素到数组b中
例:
int a[1000],b[1000];
memcpy(b,a,sizeof(int)*k);
把数组a中全部元素复制到数组b中
int a[1000],b[1000];
memcpy(b,a,sizeof(a));
四、memset()函数:对数组进行清零操作
例:char a[1000];
memset(a,0,sizeof(a));
五、fgets():函数:一次性读取一整行,遇到换行结束。
例:char a[1000],b[1000];
fgets(a,sizeof(b),stdin);
六、isalpha(a):判断a是否为字母,是返回非零。
isdigit(a):判断a是否为阿拉伯数字,是返回非零。
isprint(a):判断a是否可打印,是返回非零。
char a;
toupper(a):将数组a中的字母转换成大写形式
strupr(a):将数组a中的字母转换成大写形式
tolower(a):将数组a中的字母转换成小写形式
strlwr(a):将数组a中的字母转换成小写形式
七、atoi()函数:在stdlib.h头文件中把字符串转换成整型数的一个函数。貌似只能对字符串里的数字进行转换,若字符串中是字母则返回0
例:char s[]="123.123";//注意数组类型
scanf("%s",s);
printf("%d\n",atoi(s));//输出123,四舍五入
char
a[] =
"-100"
;
char
b[] =
"123"
;
int
c;
c =
atoi
(a) +
atoi
(b);
printf
(
"c=%d\n"
, c);//输出23
八:strchr()函数:可以查找字符串s中首次出现字符c的位置。
例:
#include <string.h>
#include <stdio.h>
int main(void)
{
char string[17];
char *ptr,c='r';
strcpy(string,"Thisisastring");
ptr=strchr(string,c);
if(ptr)
printf("The character %cis at position:%s\n",c,ptr);
else
printf("The character was not found\n");
return 0;
}
运行结果:The character r is at position: ring
ceil():进一法,floor():去尾法
#include<stdio.h>
#include<math.h>
int main()
{
double number=123.45;
double down,up;
down=floor(number);
up=ceil(number);
printf("%5.2lf\n",number);
printf("%5.2lf\n",down);
printf("%5.2lf\n",up);
return 0;
}