БлогNot. C++: простые реализации atoi и itoa

C++: простые реализации atoi и itoa

...то есть, стандартных сишных функций преобразования строки в число и числа в строку. Понадобились "в исходниках", а быстрее написать, чем найти. На совершенство отнюдь не претендуют, нужны были только для иллюстрации принципа и алгоритма.

#include <iostream.h>
#include <string.h>
#include <ctype.h>

char *itoa (int n, char *s) {
 char *t=s; int z=0;
 if (n<0) { z=1; n=-n; }
 do *s++=n%10+'0'; while (n/=10);
 if (z) *s++='-';
 *s='\0';
 return strrev(t);
}

int atoi (char *s) {
 int z=0,n=0;
 while(isspace(*s)) s++;
 if (*s=='-') { z=1; s++; } else if (*s=='+') s++;
 while (isdigit(*s)) n=10*n+*s++-'0';
 return (z?-n:n);
}

void main () {
 int n=-31289;
 char buf[80];
 cout << "\nitoa=" << itoa (n,buf);
 cout << "\natoi=" << atoi (buf);
 cin.get();
}

19.11.2012, 18:24 [15864 просмотра]


теги: c++ алгоритм

К этой статье пока нет комментариев, Ваш будет первым