八重山郡与那国町ラブホテルレビュー
ラブホ検索アプリ
八重山郡与那国町ラブホテル・八重山郡与那国町カップルホテル・八重山郡与那国町ファッションホテル・八重山郡与那国町レジャーホテル・八重山郡与那国町アミューズメントホテル・八重山郡与那国町ハッピー・ホテル・八重山郡与那国町デートホテルの口コミ、評判、レビュー、比較、予約はこちらです。
駅近のホテル探すなら
ラブホナビがお勧め!
Q.実行時にセグメンテーション違反と表示されます。以下のプログラムです。#include <stdio.h>#include <stdlib.h>#include <string.h>#include <time.h>#define SIZE 1024struct dt{ char num[SIZE]; // 郵便番号 char kanji1[SIZE]; // 都道府県名 char kanji2[SIZE]; // 市区町村名 char kanji3[SIZE]; // 町域名 char banchi[SIZE]; // 番地 char kanji4[SIZE]; // 以下住所};int main(int a, char *argv[]) { struct dt line; FILE *fp; char *address, buff[SIZE], string_buff[SIZE]; int f; clock_t start, end; start = clock(); if ((fp = fopen("table.csv", "r")) == NULL) { puts("ファイルが開けません。"); return -1; } f = 0; address = argv[1]; while (fgets(buff, SIZE, fp) != NULL) { strcpy(line.num, strtok(buff, ",\"")); strcpy(line.kanji1, strtok(NULL, ",\"")); strcpy(line.kanji2, strtok(NULL, ",\"")); strcpy(line.kanji3, strtok(NULL, ",\"")); strcpy(line.banchi, strtok(NULL, ",\"")); strcpy(line.kanji4, strtok(NULL, "\"")); strcpy(string_buff, line.kanji1); strcat(string_buff, line.kanji2); strcat(string_buff, line.kanji3); strcat(string_buff, line.banchi); strcat(string_buff, line.kanji4); if (strcmp(string_buff, address) == 0) { printf("%s \¥n", string_buff); f = 1; break; } if(strcmp(line.num, address) == 0) { printf("%s \¥n", string_buff); f = 1; break; } } fclose(fp); end = clock(); printf("%.30f秒\¥n", (double)(end-start)/CLOCKS_PER_SEC); return(0);}table.csvには、「9071892,沖縄県,八重山郡与那国町,字与那国,129,与那国町役場」のように、約14万件の郵便番号と住所が書かれています。どうやらstrcpyのところでセグメンテーション違反になっているようです。どのように改善すればいいでしょうか。環境はLinuxです。
A.関数の説明によるとstrtok関数は、トークンの最初の文字位置を指すポインタを返します。
トークンが見つからない場合にはNULLを返します。
と、記載されています。
strtokでのトークンの取得に失敗した...
詳しくはこちら
トークンが見つからない場合にはNULLを返します。
と、記載されています。
strtokでのトークンの取得に失敗した...
詳しくはこちら
八重山郡与那国町のホテル探すなら
ラブホナビがお勧め!