in c++ how do I get the size of a string array.
sterlen(arrayname) does not work or size(arrayname) either.

I am getting sterlen or size as idenitfier not found at compile time.

Recommended Answers

All 11 Replies

strlen should work since you say you're using "string arrays"

ok here is what I got. I have
#include <string> and the for loop is

for (i = 0; i < FirstName.length(); i ++)
{
infile >> FirstName;
}

it still wont compile. now it says that left of length must have a class/strut/union type.

How is FirstName declared?

Does it look something like this:

std::string FirstName;

Or is it like this:

char FirstName[] = "Blah blah";

The latter will require what I edited into my post later (that is, strlen).

srting FirstName[10];

What compiler are you using? I don't have the .length() function in MSVC++
To get what are you are trying do to do, the way I would do it would be:

#include<vector>
#include<string>

//Then whatever goes in between
//Declaration
vector<string>FirstName(10);
//For your loop
for(i=0;i<FirstName.size();++i)
infile>>Firstname[i]

Microsoft Visual Studion .net 2003

Ah, I see what you're getting at.

Well, you could use the vector array example, or you could use a const to keep track of the array size:

const int ARRAY_SIZE = 10;
string FirstName[ARRAY_SIZE];

// ...

    for (int i=0; i < ARRAY_SIZE; i++) {
        // ...
    }

srting FirstName[10];

Do you mean to make
1) an array of 10 strings
2) a string to hold 10 characters?

If 1, you reference the length with stringname[index].length() If 2, you create the string with char stringname[10] then reference the length with strlen(stringname)

an array to hold 10 strings

stringname.length() does not work

Member Avatar for iamthwee

an array to hold 10 strings

stringname.length() does not work

Of course it doesn't, you want the actual size of the container.:rolleyes:

I.e if there is ten strings in there you want it to return 10. As mentioned before if you declare it as

string stuff[10]

Just do for (int i=0; i<10; i++) If you were using a vector of strings you could have done. for ( int i=0; i < myVector.size(); i++) Again mentioned before.

Did you stop reading my post after the questions? I followed it with the answers... :rolleyes:

commented: I know what you mean! - Salem. +6
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.