hi!!!! i'd like to ask if anyone knows how could i possibly use a string as a number...i mean:
i've got something like cin>>word;
but if that word is a number(like 1,2,3... etc) i have to use that number for going in that line.
if user types ''hello'' its ok.but if he types ''4'' i heve to use that number for going at ARRAY[4].
HOOOOOOOOOOOOOW????
(I am using a vector in which the user types words.if he types a number i have to go at that line of vector and begin wgiting all over again from line 4[example])

## All 7 Replies

First step is to check if the first character is a numeric digit or an alpha character. If its a digit then just subtract '0' to make it binary

``````char input[]= "4";
int x = input[0] - '0';``````

Or you can use atol() to convert a string of digits to binary

``````char input[] = "123";
int x = atol(input);``````

Many progrmmers prefer strtol() instead of atol() because it catches errors better.

how can i use thai inside an IF? i have to check if the word that the user entered is a number and after that,to get at the vector's line-number. if the word is 4 i have to go an the forth line of the vector and begin writing all over again the vector below the third line.

i have to make a prog that takes words from the user (cin>>word).
i have also a counter that points in which line the user is
(example)
1>hello
2>word
3>how are u?
4>i want to go to line 2 and begin all over again.so line 2 is going to be replaced just like 3,4,5...
5>:2
2>_

this is what i mean..so how can i use the word(string) so that i can make counter=word when word is number?sorry if i confused u.. :/ i think that i have to put all these in an IF!
if (word is number)
{counter=word,delete everything else below line 2 in my vector;}

It will not be a simple thing to do.

``````std::string word = "i want to go to line 2 and begin all over again.so line 2 is going to be replaced just like 3,4,5";
// search word for the first occurence of a digit
for(int i = 0; i < word.length(); i++)
{
if( isdigit(word[i]) )
{
// found it, so do something with it
}
}``````
``````#include <string>
#include <iostream>
#include <sstream>

int to_number( const std::string& word )
{
std::istringstream stm(word) ;
int n ;
if( ( stm >> n ) && stm.eof() ) return n ;
else throw 0 ;
}

int main()
{
std::string word ;
int counter = 1 ;
while( std::cout << counter << "> " && std::cin >> word )
{
try { counter = to_number(word) ; }
catch(int) { ++counter ; }
}
}``````

WELL THIS IS MY CODE!IT'S A WORD EDITOR(AT LEAST IT TRIES TO BECOME ONE)

``````#include <vector>
#include <string>
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
vector<string> eisagwgeas;
string word;
int num;
unsigned int counter = 1;
cout<<counter<<">";
while(getline(cin,word)&&word!=":q")
{
my_vector.push_back(word);
if(int num = atoi( word.c_str() ))
{counter=num;
my_vector...}[B][I][U]// HOW DO I GO AT MY VECTOR'S NUME LINE?? IF NUM=2 I WANT TO GO AT THE SECOND LINE AND REPLACE WHATEVER IS THERE WITH NEW WORDS THAT I WILL WRITE FROM THE CONSOLE..
[/U][/I][/B]
if (word==":c" || word==":s")
{int u=0;}
else
{cout<<++counter<<">";}
if (word==":s")
{
my_vector.pop_back();
int ii;
for(ii=0; ii < my_vector.size(); ii++)
{
cout << my_vector[ii] << endl;
}
cout<<counter<<">";
}
if (word==":c")
{
my_vector.clear();
counter=1;
cout<<counter<<">";
}
}
}``````
``````#include <vector>
#include <string>
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
vector<string> eisagwgeas;
string word;
int num;
unsigned int counter = 1;
cout<<counter<<">";
while(getline(cin,word)&&word!=":q")
{
my_vector.push_back(word);
if(int num = atoi( word.c_str() ))
{counter=num;
my_vector...}/[B]/ HOW DO I GO AT MY VECTOR'S NUME LINE?? IF NUM=2 I WANT TO GO AT THE SECOND LINE AND REPLACE WHATEVER IS THERE WITH NEW WORDS THAT I WILL WRITE FROM THE CONSOLE..[/B]

if (word==":c" || word==":s")
{int u=0;}
else
{cout<<++counter<<">";}
if (word==":s")
{
my_vector.pop_back();
int ii;
for(ii=0; ii < my_vector.size(); ii++)
{
cout << my_vector[ii] << endl;
}
cout<<counter<<">";
}
if (word==":c")
{
my_vector.clear();
counter=1;
cout<<counter<<">";
}
}
}``````
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.