char* c[] = { "abc","abcde","abcdef","abcdefg" };
I used sizeof(c[0]) to get string's length but not work. any other method to get array string length? like abc = 3,abcde = 5.
As with any defined array, you can get the number of elements with:
char *c[] = { "abc", "abcde", "abcdef", "abcdefg" };
size_t c_len = sizeof(c) / sizeof(c[0]); // 4 elements
Note that sizeof(c[0]) is the size of the array element, a pointer to char (char *) which you initialize with a pointer to a string constant that must not be changed. The type for this array should be:
const char *c[] = { "abc", "abcde", "abcdef", "abcdefg" };
There is no compile time method to get the length of these strings, you must use strlen(). But you can get the lengths of explicit string literals with sizeof this way:
const char *c[] = { "abc", "abcde", "abcdef", "abcdefg" };
size_t len[] = { sizeof("abc") - 1, sizeof("abcde") - 1, sizeof("abcdef") - 1, sizeof("abcdefg") - 1 };
sizeof(c[0])is confusing as there is no way looking at one element can get you the full size. If it is indeed num strings in array usesizeof(c)/sizeof(c[0])strlen(c[i])whereiis the index of the array entry you want the length for.