[問題] C的字串切割 strtok
會問到這個 當時是在想一題"網域名稱反轉"
簡略講一下:就是一般的網址列 如www.yahoo.com.tw
經過轉換後變成由右到左的tw com yahoo www
所以就想到切割字串
不過strtok的原理有點看不懂
本來想說讀入字串後 經由dot切割 然後反向輸出
但是看了網路上的資料 反而看不懂它的原理了
以下是寫出來的:
#include<stdlib.h>
#include<string.h>
#include<stdio.h>
int main(void)
{
int i=0;
FILE *fptr;
fptr = fopen("test.txt","r");
char str[100];
char *temp,*gg;
char com[100][100];
while(fgets(str,100,fptr)!= NULL)
{
temp=str;
gg=strtok(temp,".");
while(gg!=NULL)
{
strcpy(com[i],gg);
i++;
gg=strtok(NULL,".");
}
}
for(int j=i-1;j>=0;j--)
printf("%s",com[j]);
printf("\n");
system("pause");
return 0;
}
gg=strtok(temp,"."); 跟 gg=strtok(NULL,"."); 不是很了解< 網路上的寫法 >
compile之後會出錯 我覺得是strtok那邊有問題
不知道有沒有人可以幫忙解惑
說明一下 strtok(temp,".") 跟 NULL 兩者功用分別是做什麼
temp經過依據dot切割後會變成怎樣
還是面對輸入反轉字串有更好的解法 都可以跟我指點一下
我還不是很熟 盼請高手幫助囉
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.167.5.187
推
06/21 17:40, , 1F
06/21 17:40, 1F
推
06/21 17:46, , 2F
06/21 17:46, 2F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章