Каждый раз, когда я запускаю этот код, я получаю 3. Но это должно быть 10. Как это исправить?
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { int n; char* element[] = "Hydrogen" ,"Helium", "Lithium", "Beryllium", "Boron", "Carbon", "Nitrogen", "Oxygen", "Fluorine", "Neon" }; n=strlen(element); printf("%d",n); return 0; }
Что я уже пробовал:
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { int n; char* element[] = {"Hydrogen","Helium","Lithium","Beryllium","Boron","Carbon","Nitrogen","Oxygen","Fluorine","Neon"}; n=strlen(element); printf("%d",n); return 0; }
Garth J Lancaster
Я подозреваю, что знаю ответ, но для полноты картины вы хотите знать, сколько элементов находится в массиве элементов, для которого 10 было бы правильным, по сравнению с размером (количеством символов) первого элемента
очевидно, что проблема в вашем коде заключается в том, что
n=strlen (элемент);
он делает не совсем то, что вы ожидаете/думаете, что он делает ....
[редактировать]
Я брошу это там, чтобы вы подумали - вы смотрели на функцию sizeof ()?
посмотрите на sizeof(element) и sizeof (element[0])
[/редактировать]