Автор CalvinKline задал вопрос в разделе Другие языки и технологии
Си длина строки и получил лучший ответ
Ответ от Николай Веселуха[гуру]
#include <stdio.h> #include <string.h> #include <conio.h> size_t ustrlen(const char *); int main() { char str[] = \"Hello world!\"; size_t size_str = strlen(str); printf(\"std_size = %u\\n\", size_str); size_str = ustrlen(str); printf(\"usr_size = %u\\n\", size_str); _getch(); return 0; } size_t ustrlen(const char * p) { size_t size = 0; while (p[size++] != 0) { } return --size; }
че
for (n=0; *s=='\0'; n++)
во-первых цикл выполняется пока условие истинно, а у тебя там условие выхода (еще и неправильно записанное) . замени на обратное (не равно нулевому символу) . во-вторых у тебя n++ два раза, а s++ ни разу второй n++ замени на s++
во-первых, в твоей стрлен не вижу чтобы указатель на символ конкретный менялся при проверке в цикле фор. не пробовал но на память если то кажется что так можно писать (вместо {for(n=0; *s='\0';n++) n++;} ) так вот: {for(n=0; *(s+n)!='\0';n+=2){n--;} } . А