C
1コード 2#include <stdio.h> 3#include <stdlib.h> 4#include <string.h> 5 6#define MAX_LENGTH 20 7 8int split(char *str,char *list[],const char delimiter){ 9 int index; 10 list[index++]=??? 11 while(?????){ 12 str++ 13 if(){ 14 *str="\0"; 15 ??????? 16 ??????? 17 } 18 } 19 return index; 20} 21 22int main(void){ 23 char str[]="One,Two,Three,Four"; 24 char *result[MAX_LENGTH]; 25 int length; 26 length=split(str,result,","); 27 for(i=0;i<length;i++){ 28 printf("%s\n",length[i]); 29 } 30 return 0; 31}
split関数を実装したいのですが??の部分がわかりません
strtok関数を使うのかなとは予想しているのですがどのように実装すればよいかがわかりません。
院試の過去問なのでコードもらいたいだけのように思われてしまうかもしれませんが、
頼れるところがないのでもしよろしければ教えていただけると幸いです
よろしくお願いいたします。
追記部分
C
1#include <stdio.h> 2#include <stdlib.h> 3#include <string.h> 4 5#define MAX_LENGTH 20 6 7int split(char *str,char *list[],char delimiter){ 8 int index=0; 9 list[index++]=str; 10 while(*str!='\0'){ 11 str++; 12 if(*str==delimiter){ 13 *str='\0'; 14 str++; 15 list[index++]=str; 16 //printf("%s\n",list[index-1] ); 17 } 18 for(int i=0;i<index;i++){ 19 printf("%s\n",list[i]); 20 } 21 } 22 return index; 23} 24 25int main(void){ 26 char str[]="One,Two,Three,Four"; 27 char *result[MAX_LENGTH]; 28 int length; 29 length=split(str,result,','); 30 for(int i=0;i<length;i++){ 31 printf("%s\n",result[i]); 32 } 33 return 0; 34} 35
回答3件
あなたの回答
tips
プレビュー