在TC和VC中关于字符处理的区别!这里我们把字符型的数字转换成整形数字!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在TC和VC中关于字符处理的区别!这里我们把字符型的数字转换成整形数字!相关的知识,希望对你有一定的参考价值。
#include"stdio.h"
main()
long s=0,i=0,flot=1 ;
char *str;
scanf("%s",str);
printf("=============\n原本格式%s\n",str);
if(*str=="-")//这里判断我们输入的第一个是不是有一个负号,如果有我们就为-1我们最终的结果剩以这个变量!
flot=-1;
str++;
while(*str!='\0')
i=*str-'0';//每一个字符是按ASCII码来计算的。如果要转换成数字就要-'0'这里的*str是一个指针指向一个字符
s=s*10+i;//这里*10是为了让这个下一个数进位!用s来求得这个int型数
str++;//做完了这些过后我们就要把指针移动一下指向下一个了!
printf("==================\n转换后格式%d\n",s*flot);//这里*flot是为了还原出是不是负数!
这个在TC中能正确运行在VC中就不能了!
问题在于你声明了:
char *str;
str 自身没有存放字符串的单元。你要么初始化,给它存储单元,或动态分配单元。或者只用它作指针。
如果这样:
char a[100]; char *str; str = &a[0]; scanf("%s",str);
就没问题了。
VC 要求比较严格。追问
我也这么试过的。开始以为如果指针没有指向任何地址它就不能。我也这么写过的。也是不行的。scanf语句貌似不能这样输入一个字符串!
追答“scanf语句貌似不能这样输入一个字符串”--- 你再试一下便有体会了(如此简单):
#include
#include
main()
char a[100];
char *str;
str = &a[0];
scanf("%s",str);
printf("%s\n",a);
// 。。。。
----------
if(*str=="-") // 不能用双引号,双引号括起的是字符串,字符串比较 要用 strcmp(),strncmp().
if (*str == '-' ) // 是可以的。
可以typedef flot float追问
这个知道。我这里只要把它当做一个变量。随便用的一个变量!
追答#include"stdio.h"main()
long s=0,i=0,flot=1 ;
char str[10];//这里我改成了数组
char *p=str; 用指针指向数组
scanf("%s",str);
printf("=============\\n原本格式%s\\n",str);
if(*p=="-")//这里判断我们输入的第一个是不是有一个负号,如果有我们就为-1我们最终的结果剩以这个变量!
flot=-1;
p++;
while(*p!='\\0')
i=*p-'0';//每一个字符是按ASCII码来计算的。如果要转换成数字就要-'0'这里的*str是一个指针指向一个字符
s=s*10+i;//这里*10是为了让这个下一个数进位!用s来求得这个int型数
p++;//做完了这些过后我们就要把指针移动一下指向下一个了!
printf("==================\\n转换后格式%d\\n",s*flot);//这里*flot是为了还原出是不是负数!
system("pause");
改用数组 我改好了
java中关于String和StringBuffer的问题与解析
问题一:String 和 StringBuffer 的区别
JAVA 平台提供了两个类: String 和 StringBuf fer ,它们可以储存和操作字符串,即包含多个字符的字符数据。这个 String 类提供了数值不可改变的字符串。而这个 StringBuf fer 类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用 StringBuf fer 。典型地,你可以使用StringBuf fers 来动态构造字符数据。
问题二:swtich 是否能作用在 byte byte byte byte 上,是否能作用在 long long long long 上,是否能 作
用在 String上 ?
switch ( expr1 )中, expr1 是一个整数表达式。因此传递给 switch 和 case 语句的参 数
应该是 int 、 short 、 char 或者 byte 。 long,string 都不能作用于 swtich 。
以上是关于在TC和VC中关于字符处理的区别!这里我们把字符型的数字转换成整形数字!的主要内容,如果未能解决你的问题,请参考以下文章
为啥在网上找的一些c语言程序的代码在vc++6.0中编译总是出现错误?求指教