王道c语言-判断对称数,sprintf应用

Description

输入一个整型数,判断是否是对称数,如果是,输出yes,否则输出no,不用考虑这个整型数过大,int类型存不下,不用考虑负值

方法一 取余乘位权

#include <stdio.h>
int main() {
    int n,a,b=0,tmp;
    scanf("%d",&a);
    n=a;
    while (a){
        tmp = a%10;
        b=b*10+tmp;
        a=a/10;
    }
    if (n==b){
        printf("yes");
    } else{
        printf("no");
    }
    return 0;
}

方法二 转为字符串 sprintf + strlen + strcmp

#include <stdio.h>
#include "string.h"
int main() {
    int a;
    scanf("%d", &a);
    char string1[16] = {0},string2[16]={0};
    sprintf(string1,"%d",a); //整数a转换为字符串存入string1
    int len = strlen(string1);
    for(int i;i<len;i++){
        string2[len-i-1]=string1[i];
    }
    if (strcmp(string1,string2)==0){
        printf("yes");
    } else{
        printf("no");
    }
    return 0;
}

sprintf + malloc + perror + free的应用

#include"stdio.h"
#include"malloc.h"
int main(void) {
    char *a = NULL;//声明一个指向a的char*类型的指针
    a = (char *) malloc(100 * sizeof(char));//malloc将内存首地址赋值给a,失败返回null
    if (!a){
        perror("oops:");
        return -1;
    }
    sprintf(a, "%s", "HelloWorld\n"); //"HelloWorld\n"写入a指向的地址
    printf("%s\n", a);
    free(a);//容易忘记!
    return 0;
}

sprintf 将多个数字写入字符串

int a,b;
scanf("%d %d",&a,&b);
char str[20]={0};
sprintf(str,"%d , %d",a,b); //将 a,b按“ ”中类型存入目标字符串地址str
printf("%s",str);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值