#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int stonum( char *str );
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
printf("Введите строку чисел str: ");
char str[128];
gets(str);
printf("Результат: %d", stonum(str));
return 0;
}
int stonum( char *str )
{
int zn=1,k=1,res=1;
if (*str=='-')
{
zn=-1;
str++;
}
for (; *str!='\0'; str++)
{
if ((*str>='48') && (*str<='57'))
k=k*10;
}
for (; *str!='\0'; str++)
{
res+=(*str-'0')*k;
k/=10;
}
res=(zn*res)/10;
return res;
}
#include <stdio.h>
#include <stdlib.h>
int stonum( char *str );
int main()
{
printf("Введите строку чисел str2: ");
char str[128];
gets(str);
printf("Результат: %d", stonum(str));
return 0;
}
int stonum( char *str )
{
int zn=1,k=1,res=1;
if (*str=='-')
{
zn=-1;
str++;
}
char *temp = str;
for (; *str!='\0'; str++)
{
if ((*str>='0') && (*str<='9'))
k=k*10;
}
str = temp;
for (; *str!='\0'; str++)
{
res+=(*str-'0')*k;
k/=10;
}
res=(zn*res)/10;
return res;
}
int main()
{
char string [256];
printf ("Введите последовательность чисел: ");
gets (string); // warning: unsafe (see fgets instead)
printf("Результат: %d", stonum(string));
return 0;
}
bool isNumber(char ch){
if ((ch>='0') && (ch<='9')) return true;
return false;
}
int stonum( char* str)
{
bool isSign = false;
if ((*str == '+') || (*str == '-')) {
if (*str == '-') isSign = true;
str++;
}
if (isNumber(*str)) {
int number = *str - '0';
while(isNumber(*(++str))){
number *= 10;
number += *str - '0';
}
return ((isSign) ? -number : number);
}
return 0; // Bad number.
}
// Не помню есть ли в С bool и true. при необходимости заменить на int и 1.
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.