http://www.rs.kagu.tus.ac.jp/infoserv/j-siken/H1 …
このプログラムを完成させたいのですが、
例えば、「abc dfg hij ・・・」とscanfで文字列入力した場合、空白以降(スペース)が読み取れません。
(「abc」しか読み取れません)
スペース以降の文字列もキーボード入力できるようにするにはどうしたらいいのでしょうか?
No.2ベストアンサー
- 回答日時:
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#define BUFFMAX 1024
#define WORDMAX 16
void
wordwrap(char str[], int max)
{
char word[BUFFMAX / 2][WORDMAX], buff[BUFFMAX];
int leng[BUFFMAX / 2], i, idx, cnt, pos;
/*** 文字列を単語に分解する ***/
i = idx = cnt = 0;
while (str[i] != '\0') {
if (str[i] == ' ') {
word[idx][cnt] = '\0';
leng[idx] = cnt;
idx++;
cnt = 0;
}
else {
word[idx][cnt] = str[i];
cnt++;
}
i++;
}
word[idx][cnt] = str[i];
leng[idx] = cnt;
/*** 出力する ***/
i = pos = 0;
while (i <= idx) {
if ((pos + leng[i]) > max) {
buff[pos - 1] = '\0';
printf("%s\n", buff);
pos = 0;
}
strcpy(&buff[pos], word[i]);
pos += leng[i];
buff[pos] = ' ';
pos++;
i++;
}
buff[pos - 1] = '\0';
printf("%s\n", buff);
}
int
main(int argc, char *argv[])
{
char buf[BUFFMAX + 1];
int len, i;
FILE *fp;
if (argc <= 1) {
fprintf(stderr, "%s len [file]\n", argv[0]);
exit(0);
}
len = atoi(argv[1]);
if (argc > 2) {
if ((fp = fopen(argv[2], "r")) == NULL) {
fprintf(stderr, "Cannot open file %s\n", argv[2]);
exit(errno);
}
}
else {
fp = stdin;
}
while (fgets(buf, BUFFMAX + 1, fp) != 0) {
wordwrap(buf, len);
}
fclose(fp);
return 0;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java Javaの問題なのですが、「3文字以上の英数字文字列を入力し、文字列の中に文字(9)が出てくるまでの 1 2023/06/06 18:55
- C言語・C++・C# [C言語] コメント文字列を無視して、数値データを読み込むプログラム部分について 5 2022/10/05 11:03
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- C言語・C++・C# C#の問題です。 文字列型の配列 s[100] にキーボードから入力された100文字以内の文字列(単 2 2022/06/22 15:18
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- Visual Basic(VBA) excelにて、特定の列に数字入力してあれば、入力してある行コピーして 別ファイルに張り付ける 2 2022/08/11 05:33
- Ruby ruby 1 2022/06/10 13:31
- その他(プログラミング・Web制作) プログラミング pythonの問題について 2 2022/04/19 00:41
- PHP ここで言う空文字の意味とは? 1 2022/08/05 16:27
- C言語・C++・C# str[j++]の意味 2 2022/08/30 16:20
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
なぜCSQとCIP形式ではコ...
-
複数ファイルの同時読み込みの...
-
ファイルが読み込めない・・・
-
c言語 ファイルから数字を読み...
-
日本語ファイル名のFTPについて
-
C言語を用いて、csvファイル内...
-
fgets( ) の返り値は何?
-
ガンマ変換 C言語でプログラ...
-
C言語でのCSVソートとデータ抽...
-
C言語でファイル読み書きを早く...
-
構造体とファイル検索(><)
-
音声データを出力するCプログラ...
-
lockfについて
-
画像を読み込み、画素値の度数...
-
ファイルへの書込み処理が異常...
-
乱数とファイルの入出力の質問...
-
csvfファイルの1行目と3行目を...
-
テキストファイル内に対して, ...
-
C言語におけるファイル読み込み...
-
#define _CRT_SECURE_NO_WARNIN...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
c言語でのfscanfについて
-
C言語でファイル読み書きを早く...
-
fopenでファイル名に、変数を使...
-
複数ファイルの同時読み込みの...
-
fgets( ) の返り値は何?
-
テキストファイル内に対して, ...
-
ファイルへの書込み処理が異常...
-
C言語にてXMLファイルから任意...
-
ファイル出力で改行を入れたい!
-
C言語でセグメンテーションエ...
-
エラーがわかりません、、
-
ガンマ変換 C言語でプログラ...
-
自己相関関数を求めるプログラ...
-
VisualStudioでのファイルの入...
-
同時にファイル読み込み 書き込み
-
c言語 ファイルから数字を読み...
-
大量の入力ファイルを扱うとき...
-
ファイルが読み込めない・・・
-
【C言語】ファイルを読み込んで...
-
a*(1-exp(-bx))+cの近似の方法
おすすめ情報