题目:设计字符串转换为整数,以及整数转换为字符串的函数功能块。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windef.h>
int str2int(const char *str, int *result){
int bPositive = TRUE;
int j = 0;
int data = 0;
if(str == NULL)
return -1;
if(str[0] == '-'){
bPositive = FALSE;
j ++;
}
while(str[j] != '\0'){
data = (data << 3) + (data << 1);
data += str[j ++] - '0';
}
if(!bPositive){
data = -data;
}
*result = data;
printf("data: %d\n", data);
return 0;
}
int int2str(int n, char *str){
int j = 0;
if(str == NULL)
return -1;
if(n < 0){
n = -n;
str[j ++] = '-';
}
while(n > 0){
str[j ++] = n % 10 + '0';
n /= 10;
}
str[j] = '\0'; /* 一定不要遗漏这个字符串结束符 */
if('-' == str[0]){
strrev(str + 1);
}
else
strrev(str);
return 0;
}
int main(int argc, char *argv[]) {
int result = 0;
str2int("-1234", &result);
printf("result: %d\n", result);
char str[20];
int2str(-123456, str);
printf("str: %s\n", str);
return 0;
}