C/C++ string转int

这种基础的小问题,总是在面试的时候,或者不起眼的地方出现,虽是基础,还是会碰壁,注意以下几点:

1、string传入的时候是const的不可以改变

2、一定要判断传入的string是否是有效的

3、判断string是否是结尾的条件是'\0',字符串末尾都是有这个,注意是反斜杠

4、string里面的单值取出的时候是ASCII的,要减去48,也就是‘0’


int constToInt(const char* cstr){
if (cstr == NULL){
assert(cstr);
//断言
}
int iSum = 0;
while (*cstr != '\0'){
iSum *= 10;//向前移动位数
iSum = iSum + (*cstr - '0');
++cstr;//指针移动
}
return iSum ;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在C语言中,将string字符串换为int型整数有多种方法。一种方法是使用C语言提供的库函数atoi,该函数可以将C风格的字符串换为整型数。为了使用atoi函数,我们需要先将string字符串换为C风格的字符串。你可以使用string类的成员函数c_str()来获取C风格的字符串表示。以下是一个示例代码: ```c++ #include <iostream> #include <cstdlib> #include <string> using namespace std; int main() { string s("1234"); int a = atoi(s.c_str()); cout << a << endl; system("pause"); return 0; } ``` 在这个示例代码中,我们首先定义了一个string对象s,并赋值为"1234"。然后,我们使用atoi函数将s换为整型数a,并将结果输出到屏幕上。注意,在使用atoi函数之前,我们使用了s.c_str()函数将string字符串换为C风格的字符串。 另外,如果你想要将一个字符串变量str换为整型数,你需要先将string换为char*,然后再使用atoi函数进行换。以下是一个示例代码: ```c++ #include <iostream> #include <cstdlib> #include <string> using namespace std; int main() { char* s = "1234"; string str("5678"); int intS = atoi(s); int intStr = atoi(str.c_str()); cout << "char* int: " << intS << endl; cout << "string int: " << intStr << endl; system("pause"); return 0; } ``` 在这个示例代码中,我们首先定义了一个char*类型的变量s,并赋值为"1234"。然后,我们定义了一个string对象str,并赋值为"5678"。接下来,我们使用atoi函数分别将s和str换为整型数intS和intStr,并将结果输出到屏幕上。请注意,我们需要使用str.c_str()将string字符串换为C风格的字符串再使用atoi函数进行换。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [C++stringint](https://blog.csdn.net/xiong452980729/article/details/61677701)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值