首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >C++将字符串字母转换为整数值(ASCII码)

C++将字符串字母转换为整数值(ASCII码)
EN

Stack Overflow用户
提问于 2013-02-23 01:51:31
回答 4查看 6.9K关注 0票数 2

我目前正在做一个项目,我需要创建两个数据结构,这两个数据结构将用于包含字符串。它们中的一个必须是链表的形式,我已经被告知,对于字母表中的每个字母,我已经将单词分离到它内部的单独列表中。我需要考虑效率,所以我有一个大小为26的头指针数组,并且希望将给定单词的第一个字符转换为整数,以便可以将其放入下标中,例如:

代码语言:javascript
代码运行次数:0
运行
复制
//a string called s is passed as a parameter to the function
int i = /*some magic happens here*/ s.substr(0, 1);
currentPointer = heads[i]; //then I start iterating through the list

我一直在寻找,我似乎找到的所有东西都是如何将字符串中的数字字符转换成整数,而不是字母字符,我想知道到底如何才能在不求助于一组庞大而丑陋的if语句的情况下实现这一点

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-02-23 02:06:46

将i设置为第一个字符的值时,将获得ASCII值。所以我超出了你的0-25范围:看man ascii,你可以通过减去第一个alaphabet ascii字母来减少它。(请小心处理此案)

代码语言:javascript
代码运行次数:0
运行
复制
 std::string   s("zoro");
 int   i = s[0];

 std::cout << "Ascii value : " << i << " Reduced : " << i - 'a' << std::endl;

其产生ASCII值'z‘= 112,并且如预期的那样产生用于减小值的25。

票数 3
EN

Stack Overflow用户

发布于 2013-02-23 01:59:22

我认为你混淆了值和表示。"Ten“"10”和"1 1 1“都是相同的值,只是表示方式不同。

我一直在搜索,我似乎找到的所有东西都是如何将字符串中的数字字符转换为整数,而不是字母字符

这没什么区别。不管怎样,字符总是用整数表示的。这只是一个表示的问题。只要以你想要的方式呈现价值即可。

顺便说一下,这是程序员必须理解的一个关键概念。因此,值得花一些时间来考虑它。

这种误解的一个典型例子是这样一个问题:“我有一个变量i,它有一些十进制值。我如何让它存储十六进制的值?”当然,这没有任何意义,它存储值,而十六进制和十进制是表示。如果你有十辆车,你有十辆车,而不是十进制或十六进制。如果i的值为10,则值10的格式为i,而不是十进制或十六进制的十的表示形式。

当然,在显示存储在i中的值时,必须选择如何表示它。您可以将其显示为ten10| | | | | | | | | | |或其他格式。

您可能有一个字符串,该字符串以十六进制表示值"ten“,并且您可能需要将该值赋给一个变量。这需要从表示转换为它所表示的值。

有输入和输出函数,它们以各种表示形式输入和输出值。

票数 3
EN

Stack Overflow用户

发布于 2013-02-23 02:02:21

我怀疑您想要将存储在字符串中的数字作为字符转换为整数,例如,将字符'9'转换为整数9

为此,请执行以下操作:

代码语言:javascript
代码运行次数:0
运行
复制
char c = '9';
int x = c - '0';

不管你的电脑是使用ASCII还是EBCDIC,它都可以工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15030245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档