sprintf与strchr的用法(用竖式问题举例)

一、 sprintf输出到字符串。sprintf函数在我们完成其他数据类型转换成字符串类型的操作中应用广泛。
函数原型:int sprintf( char *buffer, const char *format, [argument,...] ); buffer是字符数组名;format是格式化字符串。
返回值:s printf的返回值是字符数组中字符的个数,即字符串的长度,不用再调用strlen(s)求字符串的长度。
二、strchr:在字符串中查找单个字符。
函数原型:char *strchr(char const *str,int ch);
返回值:strchr函数找到后返回一个指向该位置的指针,如果不存在,返回一个NULL指针 。
举例:
#include<stdio.h>
#include<string.h>
int main()
{
    int count = 0;
    char s[20], buf[99];
    scanf("%s",s);
    for(int abc = 111;abc <= 999;abc++)
    for(int de = 11;de <= 99;de++){
        int x = abc*(de%10),y = abc*(de/10),z  = abc*de;
        sprintf(buf,"%d%d%d%d%d",abc,de,x,y,z);
        int ok = 1;
        for(int i = 0;i < strlen(buf);i++)
            if(strchr(s,buf[i]) == NULL) ok = 0;
        if(ok){
            printf("<%d>\n",++count);
            printf("%5d\nX%4d\n-----\n%5d\n%4d\n-----\n%5d\n\n",abc,de,x,y,z);
        }
    }
    printf("The number of solutions = %d\n",count);
    return 0;
}

运行结果:

猜你喜欢

转载自blog.csdn.net/liangllhahaha/article/details/79447326