We're a community of 1076K IT Pros here for help, advice, solutions, professional growth and fun. Join us!
1,075,687 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Start New Discussion Reply to this Discussion

Problem with 2-d Character Array

The output I expected was:

alpha
beta

I used the following code:

#include<iostream.h>
#include<conio.h>
void main()
{
    clrscr();
    char choice[2][5]={"alpha","beta"};
    cout<<choice[0]<<endl;
    cout<<choice[1];
    getch();
}

But this is what comes:

alphabeta
beta

Can anyone tell me what I did wrong? Thank you.

P.S.:I know I am not using standard c++, but this is how we have to do in school.

3
Contributors
4
Replies
4 Hours
Discussion Span
1 Year Ago
Last Updated
5
Views
Question
Answered
anu07
Junior Poster in Training
66 posts since Jun 2010
Reputation Points: 7
Solved Threads: 5
Skill Endorsements: 0

Ts becouse alpha jst fills all the space allocatd and the next space will be filld with beta whch z not 5lettered and the string end"\0"is not present for alpha here ny way

sarathsp06
Newbie Poster
1 post since Oct 2011
Reputation Points: 10
Solved Threads: 1
Skill Endorsements: 0

Ts becouse alpha jst fills all the space allocatd and the next space will be filld with beta whch z not 5lettered and the string end"\0"is not present for alpha here ny way

Can you elaborate, and with proper English? Thank you.

anu07
Junior Poster in Training
66 posts since Jun 2010
Reputation Points: 7
Solved Threads: 5
Skill Endorsements: 0

There is not enough room in your array to hold "alpha". The C-string "alpha" ends with an additional '\0'(NUL)-character and thus needs 6 chars in the array. char choice[2][6]={"alpha","beta"}; should work.

Caligulaminus
Junior Poster
106 posts since Feb 2011
Reputation Points: 72
Solved Threads: 30
Skill Endorsements: 0

There is not enough room in your array to hold "alpha". The C-string "alpha" ends with an additional '\0'(NUL)-character and thus needs 6 chars in the array. char choice[2][6]={"alpha","beta"}; should work.

Thanks a lot Caligulaminus, it worked. I thought that, since "alpha" is held from choice[0][0] to choice[0][4], choice[0][5] should hold the null character.

Thanks again. :)

anu07
Junior Poster in Training
66 posts since Jun 2010
Reputation Points: 7
Solved Threads: 5
Skill Endorsements: 0
Question Answered as of 1 Year Ago by Caligulaminus and sarathsp06

This question has already been solved: Start a new discussion instead

Post: Markdown Syntax: Formatting Help
 
You
View similar articles that have also been tagged:
 
© 2013 DaniWeb® LLC
Page rendered in 0.0645 seconds using 2.69MB