转换为int(C)的字符串的一部分

时间:2017-12-10 22:17:05

标签: c

我试图获取字符串的一部分并将其放入int中。 例如:

button.wantsLayer = true

我想将char str[] = "bla bla bla 98"; int a; 放在98中。我只能使用a

1 个答案:

答案 0 :(得分:2)

这个简单的程序将演示如何在字符串str []中获得第一个遇到的整数。

可以重复使用函数ID | Description | ParentID 01 | Cat | 101 02 | Salmon | 201 03 | Dog | 101 101 | Mammals | 301 201 | Fish | 201 301 | Vertebrates | 401 401 | Animals | 来寻找更多数字。也可以识别负整数。

get_first_encountered_number(char *str, int *number);

输出:

#include <stdio.h>
#include <string.h>
int my_atoi(char *str)
{
    int result = 0; 

    for (int i = 0; str[i] != '\0'; ++i)
        result = result*10 + str[i] - '0';

    return result;
}

char * get_first_encountered_number(char *str, int *number)
{
    int i;

    for (i=0; str[i]!=0; i++)
    {

        if ( (str[i] < '0') || (str[i] > '9'))
            continue;

        if( (i>0) && (str[i-1] == '-'))
           *number = -my_atoi(&str[i]);
         else  
           *number = my_atoi(&str[i]);        

         break;
     }

     return &str[i];
 }

int main()
{
    char str[] = "bla bla bla 98";
    char str1[] = "bla bla bla -98";
    int a;

    get_first_encountered_number(str,&a);
    printf("number= %d\n",a);

    get_first_encountered_number(str1,&a);
    printf("number= %d\n",a);

    return 0;
}