- 论坛徽章:
- 0
|
本帖最后由 tlocean 于 2010-10-07 22:09 编辑
源代码 如下:
环境:ubuntu + gcc
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void my()
{
char s[] = "我是中国人/测试用/abcdefghijkl/[测试用]";
char *my_p = NULL;
const char *delim = "/";
char *pointer;
my_p = strtok(s,delim);
printf("______%s______this is the first_time!\n",my_p);
while(pointer != NULL)
{
strcat(my_p,pointer);
pointer = strtok(NULL,delim);
}
printf("______%s______this is the final_time!\n",my_p);
}
int main(void)
{
my();
return 0;
}
输出结果如下:
______我是中国人______this is the first_time!
______我是中国人测试用abcdefghijkl[测试用]______this is the final_time!
说明:我的本意是想写段代码来把字符串中不需要的字符去除掉,这个功能是实现了!
但是有个关于while循环的问题:1)while循环不是会先判断里面的逻辑表达式才决定是否执行里面的语句吗?可是我上面的语句while(pointer != NULL)此时我觉得指针pointer应该为空啊
因为在这之前我没有给pointer赋任何值啊 那么while里面的语句应该不执行才对啊!怎么现在功能变成了先执行里面的语句再判断呢?也不知道我说的是否明白 现在很纠结 希望各位能解答一下!
谢谢! |
|