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 编辑 ]







