数字字符串转数值数组

数字字符串转数值数组

C 库函数 - strtok()

描述
C 库函数

char *strtok(char *str, const char *delim)

分解字符串 str 为一组字符串,delim 为分隔符。

声明
下面是 strtok() 函数的声明。

char *strtok(char *str, const char *delim)

参数
str – 要被分解成一组小字符串的字符串。
delim – 包含分隔符的 C 字符串。
返回值
该函数返回被分解的第一个子字符串,如果没有可检索的字符串,则返回一个空指针。
实例
下面的实例演示了 strtok() 函数的用法。

实例

#include <string.h>
#include <stdio.h>
 
int main () {
   char str[80] = "12-13-14";
   const char s[2] = "-";
   char *token;
   
   /* 获取第一个子字符串 */
   token = strtok(str, s);
   
   /* 继续获取其他的子字符串 */
   while( token != NULL ) {
      printf( "%s\n", token );
    
      token = strtok(NULL, s);
   }
   
   return(0);
}

让我们编译并运行上面的程序,这将产生以下结果:

12
13
14

正题

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/* 将字符串转换成数组 */
void str2arr(char *str, int arr[]){
     printf("your input:%s", str);
    int i=0;
    char temp[strlen(str)];
    char *token;
    if(str != NULL){
        token=strtok(str, " ");
        while(token!=NULL){
            arr[i]=atoi(token);//将字符串转换成int类型
            /* printf("arr[%d]=%d\n", i,arr[i]); */
            token=strtok(NULL, " ");
            i++;
        }
    }
}

int main(void){
	int node_num=0, i;
    printf("Please enter the number of nodes:");
    scanf("%d", &node_num);
    getchar();
    char str[10000];
    int arry[node_num];
    printf("Please input the node list:\n");
    //scanf("%s", str);
    fgets(str, 10000, stdin);
    str2arr(str, arry);
    for(i=0; i<node_num; i++){
        printf("arry[%3d]=%3d\n", i, arry[i]);
    }
    return 0;
}

输出结果:

Please enter the number of nodes:3
Please input the node list: 12 34
56 your input:
12 34 56
arry[ 0]= 12
arry[ 1]= 34
arry[ 2]= 56

谢谢阅读!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值