#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():将双精度浮点型值转换为字符串,转换结果中不包含十进制小数点。...