473,795 Members | 3,151 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

cast string to size_t

I have a string with format "0|first_name|l ast_name|..." which i can
split to a vector<stringby the "|" token.

At the moment to get the row number I'm using size_t row_number =
atoi(buf_string[0].s_scr()) which throws warnings.

What is the correct way to convert a string "2" to size_t 2?

Thanks in advance.

Nov 13 '06 #1
13 13704
#include <sstream>

std::istringstr eam iss("a");
size_t size;
iss >size;

You can check whether conversion failed by calling iss.fail()

Nov 13 '06 #2
You should replace parameter of std::istringstr eam iss("a") with a
value you want to convert.

Nov 13 '06 #3
pkirk25 wrote:
I have a string with format "0|first_name|l ast_name|..." which i can
split to a vector<stringby the "|" token.

At the moment to get the row number I'm using size_t row_number =
atoi(buf_string[0].s_scr()) which throws warnings.
I am guessing what you mean by s_scr() is in fact c_str(). If my guess
is correct then the following should get you a number

size_t row_number = size_t(atoi(buf _string[0].c_str()));

Notice the int-to-size_t conversion (not a cast.)
>
What is the correct way to convert a string "2" to size_t 2?

Thanks in advance.
Ben
Nov 13 '06 #4
Thanks.

Is sstream preferred to atoi?

Nov 13 '06 #5
benben wrote:
>
size_t row_number = size_t(atoi(buf _string[0].c_str()));

Notice the int-to-size_t conversion (not a cast.)
Huh? It's a cast.

--

-- Pete
Roundhouse Consulting, Ltd. -- www.versatilecoding.com
Author of "The Standard C++ Library Extensions: a Tutorial and
Reference." For more information about this book, see
www.petebecker.com/tr1book.
Nov 13 '06 #6
pkirk25 wrote:
Thanks.

Is sstream preferred to atoi?
By some people, not by others.

--

-- Pete
Roundhouse Consulting, Ltd. -- www.versatilecoding.com
Author of "The Standard C++ Library Extensions: a Tutorial and
Reference." For more information about this book, see
www.petebecker.com/tr1book.
Nov 13 '06 #7
pkirk25 wrote:
Is sstream preferred to atoi?
std::stringstre am is much more general than atoi. If you use atoi for
your problem, you'll be limited to the range of values that fit into an
int, whether or not you store the value in a size_t.

Also, atoi gives you no indication whether the string you passed to it
was an invalid string, or whether the string was "0". It returns 0 in
both cases.

Another alternative to atoi, if you don't want to use
std::istringstr eam, is the strtol family, but I don't believe those
functions are actually in the C++ standard. They're in the C99 standard
and a few others, so your compiler may support them.

Nate
Nov 13 '06 #8
Nate Barney wrote:
Another alternative to atoi, if you don't want to use
std::istringstr eam, is the strtol family, but I don't believe those
functions are actually in the C++ standard. They're in the C99 standard
and a few others, so your compiler may support them.
I neglected to mention that boost::lexical_ cast is another good choice
for converting strings to numbers, and it's what I use almost
exclusively for this purpose.

Nate
Nov 13 '06 #9
* Nate Barney:
Another alternative to atoi, if you don't want to use
std::istringstr eam, is the strtol family, but I don't believe those
functions are actually in the C++ standard.
They are.

--
A: Because it messes up the order in which people normally read text.
Q: Why is it such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?
Nov 13 '06 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
8940
by: Peter | last post by:
Hi everybody, I'm a new in C# and have a problem I need to create dynamically the name of object let's say "obj1", "obj2" etc. They're hashtables (Action Script objects) I'm doing like String tempStr = "obj" + i.ToString(); then
2
23369
by: mp | last post by:
How do i cast a string from sql to a long? lDocumentVersion is long, oSqlDR.GetValue(0) returns a string. lDocumentVersion =oSqlDR.GetValue(0); Thanks
8
22507
by: Paul | last post by:
I am new to C#, but have c experience. Anyhow I have a web application and am just trying to get the selected value of a dropdown box in integer form so I can pass it to a stored procedure, but cast from string to int is not allowed. any suggestions? string s_user; int i_user; s_user = this.dr_user.SelectedValue; i_user=(int)s_user; --
2
1559
by: ad | last post by:
I have a string like string sAge="13"; How Can I cast sAge to a integer?
3
6041
by: dbuchanan | last post by:
How do I explicitly cast a string to Byte? Here are my circumstances; The string is from a textbox and could be empty. The Byte is a tinyint in SQL Server 2000 I am using the AddRow method as shown below and get an InvalidCastException. "Cast from string "" to type integer is not valid" Me.DataSet.tblCustomer.AddtblCustomerRow(txtCustomerName.Text.ToString,
3
22322
by: mgonzales3 | last post by:
I have an object string property that is a string. I want to convert to a DateTime. Any ideas? DateTime eventDt = ((DateTime)mEvent.EventDt).Date; Error 1 Cannot convert type 'string' to 'System.DateTime'
13
1810
by: archuleta37 | last post by:
I'm trying to cast a String from a web forms textbox into an Int16 (see code below), but it's not quite working. When I post the textbox with numbers (no alpha chars) I get the following error in my web page: Exception Details: System.FormatException: Input string was not in a correct format. String qty; foreach (GridViewRow row in gridView1.Rows) {
2
13266
by: elena | last post by:
Hi, All Please, i need help with cast string to DateTime: DateTime dt = new DateTime(2006,09,17); it works i can update Field in Access DB Next field is Short Time data type, how i can cast string myTime = "13:30"; elena
1
2462
by: =?Utf-8?B?U2lzbmF6?= | last post by:
I'm having a very strange problem I can't seem to figure out and am hoping maybe somebody has seen it before. I get an exception "Cast string to date is invalid" with this chunk of code: ' class member Private m_invDate As Date ' this code is not exact from the program, but essentially does the same thing. This is were the exception occurs:
0
9519
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10438
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10214
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
10164
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
10001
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
1
7540
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
5437
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
1
4113
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
3727
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.