「Cの宿題/文字列操作」の編集履歴(バックアップ)一覧はこちら
「Cの宿題/文字列操作」の最新版変更点
追加された行はこの色になります。
削除された行はこの色になります。
編集テスト中 //実際に書いてみないとなんだかよくわからん ---- 目次 #contents() ---- **Q.文字列を読み込み、条件を満たす同じ個数の文字列を出力する http://pc8.2ch.net/test/read.cgi/tech/1165190320/5 //5 名前:デフォルトの名無しさん[sage] 投稿日:2006/12/04(月) 10:21:59 //前スレうまったのでいちおうこっちにもかかせてもらいます //[1]プログラム演習 //[2] 一定の文字からなる列sを読み込み、以下の条件を満たす同じ個数の文字からなる列tを出力するプログラムを作りなさい。 ただし、以下での単語とは空白以外の文字からなる列のこととする。 1,s中の単語は同じ順番で t に現われる 2,t中では単語は一つの空白に区切られる //3,t中に最初の単語の最初の文字から最後の単語の文字までは列全体のちゅうおうに位置し、前後は空白である 3,t中に最初の単語の最初の文字から最後の単語の文字までは列全体の中央に位置し、前後は空白である 例えば文字の列 _This___is__a____good___program___ を入力すると ______This_is_a_good_program______ が出力される。ここで、_は空白を表すものとする。 //[3]C言語 //[4]12/7 //[5]for,while,if文 ポインター 文字列 1,2次配列 関数の書き方 - http://pc8.2ch.net/test/read.cgi/tech/1165190320/10 //10 名前:デフォルトの名無しさん[sage] 投稿日:2006/12/04(月) 12:23:56 -//>5 +//>5 #include <stdio.h> #include <string.h> int main(void) { int i, j, l, count = 0; char str[256]; gets(str); l = strlen(str); for(i=0; i<l-1; i++) { if(str[i]==' ') { while(str[i+1]==' '){ for(j=i; j<l; j++) str[j] = str[j+1]; count++; } } } for(i=0; i<l; i++) str[l-1-i] = str[l-1-count/2-i]; for(i=0; i<(count-count/2); i++) str[l-1-i] = ' '; for(i=0; i<count/2; i++) str[i] = ' '; puts(str); return 0; } ---- **Q.指定したファイルの内容に行番号をつけて表示する http://pc8.2ch.net/test/read.cgi/tech/1165190320/13 -13 名前:デフォルトの名無しさん[] 投稿日:2006/12/04(月) 13:02:17 -[1] 授業単元:コンピュータ実習 -[2] 問題文(含コード&リンク): +//13 名前:デフォルトの名無しさん[] 投稿日:2006/12/04(月) 13:02:17 +//[1] 授業単元:コンピュータ実習 +//[2] 問題文(含コード&リンク): 以下のプログラムを参考に、 指定したファイルの内容に行番号をつけて表示し、 -さらに、空白(スペース)、タブ、改行を除く文字数を -表示しなさい。 +さらに、空白(スペース)、タブ、改行を除く文字数を表示しなさい。 ---------------------------サンプル------------------------------- #include <stdio.h> int main( void ) { FILE *fp; char c; char inFileName[64]; char str[256]; printf("File name ?"); scanf("%s", inFileName); if (( fp = fopen( inFileName, "r")) == NULL) { perror("fopen"); exit(1); } while( fgets( str, 256, fp) ) printf("%s", str); fclose( fp ); } -[3] 環境 - [3.1] OS:Linux - [3.2] コンパイラ名とバージョン: gcc - [3.3] 言語: C -[4] 期限: 12月6日12:00 -[5] その他の制限:特になし - +//[3] 環境 +// [3.1] OS:Linux +// [3.2] コンパイラ名とバージョン: gcc +// [3.3] 言語: C +//[4] 期限: 12月6日12:00 +//[5] その他の制限:特になし http://pc8.2ch.net/test/read.cgi/tech/1165190320/23 -23 名前:デフォルトの名無しさん[sage] 投稿日:2006/12/04(月) 15:59:36 ->>13 +//23 名前:デフォルトの名無しさん[sage] 投稿日:2006/12/04(月) 15:59:36 +//>>13 #include <stdio.h> int main( void ) { FILE *fp; int i,lcnt=1,size=0; char inFileName[64]; char str[256]; printf("File name ?"); scanf("%s", inFileName); if (( fp = fopen( inFileName, "r")) == NULL) { perror("fopen"); exit(1); } while( fgets( str, 256, fp) ) { i=0; printf("%d\t%s",lcnt, str); while(str[i]){ switch(str[i]){ case '\n': lcnt++;break; case '\t': case ' ': break; default:size++;break; } i++; } } printf("total: %d characters\n",size); fclose( fp ); } - -マジ適当。マジデバッグしてない。 -ちゃんと動いてるのか確認してから出すべし。 ->>17の突っ込みに対応する為に最後のprintfは -printf("total: %d character%s\n",size,size>1?"s":""); -でもいいかもしれん(三項演算子キライだけど。) +// +//マジ適当。マジデバッグしてない。 +//ちゃんと動いてるのか確認してから出すべし。 +//>>17の突っ込みに対応する為に最後のprintfは +//printf("total: %d character%s\n",size,size>1?"s":""); +//でもいいかもしれん(三項演算子キライだけど。) ----
このwikiの更新情報RSS