学习C语言的第28天

字符串格式化

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

你可能感兴趣的:(学习,c语言,算法)