字符串训练03—自我实现atoi(字符串转整形) 如:“123”转换成 123 “-123” 转换成 -123

xiaoxiao2021-02-28  119

/************************************************   字符串转整型  "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; }

转载请注明原文地址: https://www.6miu.com/read-36001.html

最新回复(0)