空白ごとに分割して出力したいのですが、
なぜか、"@+i"みたいな意味不明なものが表示されてしまいます。
どこが悪さしているのでしょうか?
C
1#include <stdio.h> 2#include <string.h> 3#include <stdlib.h> 4 5void spacePart(char str[], char **num); 6// ハッシュ探索を行う関数 引数:なし 戻り値:0 7int main() 8{ 9 char str[1000]; 10 char *num[100]; 11 puts("100個以内の数値を入力してください。"); 12 gets(str); 13 // 文字列を空白ごと分ける 14 spacePart(str, num); 15 return 0; 16} 17 18// 文字列を空白ごとに分けて配列に格納する関数 引数:入力値、配列 戻り値:なし 19void spacePart(char str[], char **num) 20{ 21 // メモリ確保 22 num[0] = (char *)malloc(strlen(str) + 1); 23 // 空白区切りに文字列を分割 24 strcpy(num[0], strtok(str, " ")); 25 26 for(int i = 0; num[i] != NULL; i++) 27 { num[i] = (char *)malloc(strlen(str) + 1); 28 printf("%s\n", num[i]); 29 strcpy(num[i], strtok(NULL, " ")); 30 } 31} 32
回答4件
あなたの回答
tips
プレビュー