#include <string.h> #include <stdio.h> #include <windows.h> #include <stdlib.h> int NumDigits(char s[]) { int i,count=0; for(i=0; i<strlen(s); i++) if (strchr("0123456789",s ) ) count++; return count; } void main2() { char s[80]; int n; printf("Введите строку\n"); gets_s(s); n=main(s); printf("%d",n); } Ошибка 1: warning C4018: <: несоответствие типов со знаком и без знака Ошибка 2: error LNK2019: ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup 1>C:\VS 2010\Test\string\Debug\string.exe : fatal error LNK1120: 1 неразрешенных внешних элементов
for(i=0; i<strlen(s); i++) в этой строке ошибка. понять не могу что не так... на 2ую ошибку не обращайте внимания)))
я СИ не знаю, но на C# цикл звучит так: for(int i=0; i < s.Length; ++i) { Console.WriteLine("{} лол пошёл!",i); } А если мне не изменяет память, к char не применяется >,< и т.п
strlen возвращает size_t . Это по сути тот же unsigned int. Поменяй тип i или сделай явное приведение типов (int)strlen() http://www.cplusplus.com/reference/clibrary/cstring/strlen/
Переименуй main2 в main... PS. Сорри, недочитал до конца int i поменяй на size_t i. А лучше вообще не обращай внимание.. Можно отключить так: #pragma warning( disable: 4018 )
int main() { char a[]="123321\0"; int count=0; for (int i = 0; i < int (strlen(a)); i ++ ) { if (strchr("0123456789",a ) ) count++; printf("%d \n",count); return count; } оказалось правильным,теперь не могу понять,когда вывожу i, то оно = 0. когда вывожу a , то оно = 49.когда вывожу count ,то оно = 1... почему выводит такие числа?
: #include <stdio.h> #include <string.h> #include <stdlib.h> int main() { char a[]={"0"}; int count=0; for (int i = 0; i < int (strlen(a)); i ++ ) { if (strchr("0123456789",a ) ) count++; printf("%d \n",a); return count; }
Code: #include <stdio.h> #include <string.h> #include <stdlib.h> int main() { char a[]={"0"}; int count=0; for (int i = 0; i < int (strlen(a)); i ++ ) { if (strchr("0123456789",a[i] ) ) count++; printf("%d \n",a[i]); return count; } Code: int main() { char a[]="123321\0"; int count=0; for (int i = 0; i < int (strlen(a)); i ++ ) { if (strchr("0123456789",a[i] ) ) count++; printf("%d \n",count); return count; } который из этих исходников используете?
что получилось, с усилиями гугла ,исходник полностью рабочий... помогите найти сумму полученных цифр,т.е каждую цифру ссумирвовать...