sprintf()
int sprint(char*str,const char *format,…);
根据参数format字符串转换格式化数据,然后将结果输出到str指定的空间中,直到出现字符串结束符’\0’为止
format:字符串格式,用法和printf()一样
#include
int main()
{
char ch[100];
//sprintf(ch,"hello world");//按照“”内的格式将字符串打印进前面数组中
sprintf(ch,"%d+%d=%d",1,2,3);
printf("%s\n",ch);
return 0;
}
输出结果://hello world
1+2=3
sscanf()
int sscanf( cont char*str,const char *format,…);
从str指定的字符串读取数据,并根据参数format字符串来转换并格式化数据
format:字符串格式,用法和scanf一样
#include
int main()
{
char ch[]="1+2=3";
int a,b,c;
sscanf(ch,"%d+%d=%d",&a,&b,&c);//通过“”内与数组格式相同将目标数组的内容读出
//char ch[]="helli world";
//sscanf(ch,"%[`\n]",str);
//sscanf(ch,"%11s",str);//遇到空格结束
//printf("%s\n",str);
printf("%d\n",a);
printf("%d\n",b);
printf("%d\n",c);
return 0;
}
输出结果:1
2
3
//hello
//hello world
strtok()
int strtok( char*str,const char *delim);
将字符串分割成一个个片段,当strtok()在参数str的字符串中发现次数delim中包含的分割字符时,则会将该字符该为0字符,当连续出现多个时只替换第一个为0
#include
int main()
{
char ch[]="www.itcast.cn";
char*p=strtok(ch,".");//截取.之前的字符,将.转换为0字符,表示结束
printf("%S\n",p);
printf("%S\n",ch);
printf("%p\n",p);
printf("%p\n",ch);//字符串截取 strtok 会破坏源字符串,但地址相同
p=strtok(NULL,".");//NULL表示上次截取或的内容
printf("%S\n",p);
p=strtok(NULL,".");//无.时读取到'\0'
printf("%S\n",p);
return 0;
}
输出结果:www
www
00019F7E4
00019F7E4
itcast
cn