/************************************************ 字符串转整型 "123" -> 123 "-123" -> -123 ************************************************/
#include <stdio.h> #include <stdlib.h> int StringToInteger(char *str) { int flag = 1; int num = 0; //最后的整型数 char *p = str; if (str == NULL) { return -1; } if (*p == '-') //负数字符串,放置-1标志 { while (*p) { *p = *(p + 1); //将字符串整体前移1位变成正数处理 p++; } flag = -1; } p = str; while (*p) { num *= 10; num += *p - '0'; //字符转整型 p++; } if (flag == -1) { return (flag * num); //负数,则返回-1*num } else { return num; } } int main() { char *str = NULL; //含有数字串的字符串 int num = 0; //最后的整型数 str = (char *)malloc(100 * sizeof(char)); printf ("please input a string(number string):\n"); scanf ("%s", str); printf ("The original string is %s\n", str); num = StringToInteger(str); if (num == -1) { printf ("function StringToInteger error!\n"); return -1; } printf ("The result is %d\n", num); free(str); return 0; }
