#define name2str(name) (#name)
#define print_val(x) printf(#x" = %d\n", x)

使用的时候自动将相应的变量名转换成字符串,示例代码:

int main()
    int a = 10;
    short b = 11;
    char c = 12;
    void *addr = (void *)123456;
    int xyz = 100;
    printf("welcome to visit http://blog.csdn.net/veabol\n");
    printf("%s = %d\n", name2str(xyz), xyz);
    print_val(a);
    print_val(b);
    print_val(c);
    print_val(d);
    return 0;

输出内容:

Welcome to visit http://blog.csdn.net/veabol
xyz = 100
a = 10
b = 11
c = 12
addr = 123456
C语言中将变量名转换成字符串使用的是#符号,来看下边两个宏定义:#define name2str(name) (#name)#define print_val(x) printf(#x" = %d\n", x) gets(s)函数与 scanf(“%s”,&s) 相似,但不完全相同,使用scanf(“%s”,&s) 函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的整个字符串直到遇到换行为止。 1.scanf() 所在头文件:stdio.h 语法:scanf(“格式控制字符串”,变量地址列表); 接受字符串时:scanf(“%s”,字符数组名或指针); 2.gets() 所在头文件:stdio.h 语法:gets(字符数组名或指针); 两者在接受字符串时: 1.不同点: scanf不能接受空格、制表符Tab、回车等
1, C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换字符串,下面列举了各函数的方法及其说明。 ● itoa():将整型值转换字符串。 ● ltoa():将长整型值转换字符串。 ● ultoa():将无符号长整型值转换字符串。 ● gcvt():将浮点型数转换字符串,取四舍五入。 ● ecvt():将双精度浮点型值转换字符串转换结果中不包含十进制小数点。...