strtok 函数求解~~~
程序代码:
#include<stdio.h> #include<string.h> #include<stdlib.h> int main(void) { char num[]="(555)555-5555"; //需要将区号、电话前缀、电话后缀 分开 char *temp; char *areaPtr; //区号 char *partOnePtr; //电话前缀 char *partTwoPtr; //电话后缀 int area; //转化数字 区号 int partOne; //转化数字 电话前缀 int partTwo; //转化数字 电话后缀 long phoneNum; //合成电话 temp=strtok(num,"("); //这里应该将“(”去除,而 temp应该只有"\0" 但是 temp却变成了555)555-5555 areaPtr=strtok(NULL,")"); //由于前面的问题,这里的值NULL, 而应该是括号里的数字 区号 555 partOnePtr=strtok(NULL,"-"); //NULL 应该是 前缀 555 printf("temp:%s\tareaPtr:%s\tpartOnePtr%s\n",temp,areaPtr,partOnePtr); partTwoPtr=strtok(NULL,"\0"); //出错 应该是 后缀 5555 后面语句不执行 printf("partTwo:%s\t\n",partTwoPtr); area=atoi(num); partOne=atoi(partOnePtr); partTwo=atoi(partTwoPtr); phoneNum=partOne*10000+partTwo; printf("%d %d\n",area,phoneNum); return 0; }
[ 本帖最后由 oszc 于 2011-5-28 15:37 编辑 ]