C语言一个把字符串转换成ASCILL码的程序
发布网友
发布时间:2022-12-14 09:47
我来回答
共4个回答
热心网友
时间:2024-11-15 11:40
你的程序虽然不长但是错误真不少:
#include <stdio.h>
int main()
{ char c[500];
scanf("%s",c);
int i = 0;
do{ printf("%x",c[i]); i++; } while(c[i] == "/0"); /*是\0,不是/0,是单撇号'',不是双撇号" " */
printf("%d",/n); /*这/n是要换行?换行符是\n而且是放在双撇号里面的*/
return 0;
}
修改一下:
#include <stdio.h>
int main()
{
char c[20];
int i=0;
scanf("%s",c);
for(;c[i]!='\0';i++)
{
printf("%x ",c[i]);
}
return 0;
}
运行正常
热心网友
时间:2024-11-15 11:41
可以直接使用类型转换函数:
1. int atoi(const char *s) 将字符串转换成int
2. long atol(const char *s) 将字符串转换成long
3. float atof(const char *s) 将字符串转换成float
再在printf输出格式制定十六进制就OK了,省事!
热心网友
时间:2024-11-15 11:41
那肯定啦, 你如果想动态的的指定大小就要用malloc/new和free/delete
#include <stdio.h>
#include <memory.h>
int main()
{
char c[500];
memset(c, '\0', 500);
scanf("%s",c);
int i = 0;
do{
printf("%x\n",c[i]);
i++;
}while(c[i] != '\0');
getchar();
return 0;
}
动态分配大小如下:
#include <stdio.h>
#include <memory.h>
int main()
{
int nSize = 500;
char *p;
printf("请输入字串长度值:");
scanf("%d", &nSize);
p = new char[nSize];
memset(p, '\0', nSize);
printf("请输入字串:");
scanf("%s",p);
int i = 0;
do{
printf("%x\n",p[i]);
i++;
}while(p[i] != '\0');
delete []p;
getchar();
return 0;
}
以上都调试通过
热心网友
时间:2024-11-15 11:42
数组铁定要指定大小。除非这样的char s[]="abc";
#include <stdio.h> int main(){ char c[500]; scanf("%s",c); int i = 0; do{ printf("%x",c[i]); i++; } while(c[i] == "/0"); printf("\n"); return 0; }