2 freak van Freak_Van 于 2016.03.22 20:49 提问

字符串存储在字符指针中遇到的问题
c++

用一个结构体图片说明

存储算式中的每一个独立标志
如:算式“123+5*6” 那么就依次将123、+、5、*、6分别存储在每一个RPNNode的token中。
初始化为图片说明

运行程序图片说明

调用函数图片说明

函数中再调用函数图片说明

然后运行程序时总是报错,设置了断点并调试结果如下图片说明

按正常来说pstr[i]的值应该为“1”,为什么会是"49'1'"呢?49是怎么回事,求大神解答

4个回答

bdmh
bdmh   Ds   Rxr 2016.03.22 20:55
已采纳

49是字符串1的acsic码的值

Freak_Van
Freak_Van 原来如此 谢谢
2 年多之前 回复
bdmh
bdmh   Ds   Rxr 2016.03.22 20:52

搞清楚,数字1和字符串的1

Dennis_Zip
Dennis_Zip   2016.03.22 20:58

字符1的 ascii就是 49

zhengnan110
zhengnan110   2016.03.22 21:33

字符和数字的对应关系查下 ascii表。
你可以把 temp 转成 int 然后和数字0和9去比较 来实现你的需求!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
C语言中字符串的存储方法
众所周知,C语言中没有数据类型能够存储字符串,char数据类型仅仅能够存储一个字符的数据,那么在C语言中关于存储字符串这一难题我们改何去何从呢?下面将详述相关的字符串存储方法;1、使用字符数组存;?123456789101112[root@Qrui ruiy]##include<stdio.h>int main(int argc,const char *argv[],const cha...
字符数组和字符串指针在内存中存储
#include #include char* strcpy1(){ char *p = "hello kitty"; printf("%s\n", p); return p; } int main(){ printf("%s", strcpy1()); return 0; } 字符串在内存中存储在只读数据段,当定义一个字符串指针时,该指针指向这个只读区域,即使在函数中将这个指针返回
字符指针与字符串
1.字符指针可以指向一个字符串。 我们可以用字符串常量对字符指针进行初始化。例如,有说明语句: char *str = "This is a string."; 是对字符指针进行初始化。此时,字符指针指向的是一个字符串常量的首地址,即指向字符串的首地址。 这里要注意字符指针与字符数组之间的区别。例如,有说明语句: char string[ ]="This is a string.";
c++字符指针与字符串的问题
char*a; a="abcd"; int b=5,*a=&b;cout
C语言中关于字符数组和指针数组
做笔试题目的时候,碰到字符数组初始化的问题,居然一下子懵了。 在C语言中存储字符串有两种方法:字符数组和字符串指针 这两者的存储位置不同,首先字符数组(局部变量)是保存在栈中的;指针指向字符串时,则包括了两部分,指针本身,存储在栈中(局部指针变量),字符串本身存储在代码段(GCC中是这样)。 基于上面一点就会产生很多不同,比如后者存在代码段是肯定不能被修改的,当然也不能作为strcpy等函数
字符、地址详解(及字符串指针、字符数组关系)
前驱结点:指针、输入输出(请参照本专题其他文章) 地址是什么 地址,就是计算机找东西的“位置编号”。 内存,就是那个“位置编号”里存的东西。 是不是很形象?“地址”和“你想找的房子(内存)” 地址在汇编语言、编译原理、计算机组成原理课程中都有提到,但是在高级一些的语言就见不到了,被隐藏了。 汇编和编译原理中提到的地址用在数组上,汇编、操作系统的寻址,组成原理的”程序内存
c++中传递字符指针容易犯的错误
先看一段容易犯错的代码段: #include using namespace std; char* GetMe() { char st[]="hello word!"; return st; } int main() { char *str; str=GetMe(); cout<<str<<endl; return 0; } 该段代码可能输出正确结果,也可能输出错误结果。原
用字符指针作函数参数来实现字符串的复制
#include int main() { void copy_string(char from[],char to[]); char a[]="i am a teacher."; char b[]="you are a student."; printf("string a=%s\nstring b=%s\n",a,b); printf("copy string a to string
指向字符串的指针 和 字符数组的区别
C语言的字符串有两中表现形式: char *ch="hello world"; char ch[]="hello world"; 这两种形式都能实现字符串的存储,但有区别: 1、复制的不同 对于字符数组,我们可以对某个字符进行赋值: char ch[4]='r'; 这将对第五个元素进行赋值,但不能以下面方式赋值: char ch[20]; ch="hello worl
C/C++ 指向字符的指针为什么可以用字符串来初始化,而不是字符地址。
本文是通过几篇转帖的文章整理而成的,内容稍有修改: 一、 C语言中,为什么字符串可以赋值给字符指针变量 char *p; a='5'; p=&a;                     //显然是正确的, p="abcd";              //但为什么也可以这样赋值?? 问:一直理解不了为什么可以将字串常量赋值给字符指针变量,请各位指点!