【掲示板ご利用上の注意】

 ※題名は具体的に!
 ※学校の課題の丸投げ禁止!
 ※ソースの添付は「HTML変換ツール」で字下げ!
 ※返信の引用は最小限に!
 ※環境(OSとコンパイラ)や症状は具体的に詳しく!
 ※返信付き投稿の削除は禁止!
 ※マルチポスト(多重投稿)は慎んで!

 詳しくはこちら


本当はこんなに大きく書きたくはないのですが、なかなか守っていただけなくて…。
 守ってくださいね。お願いします。(by管理人)

C言語ソース⇒HTML形式ツール掲示板2こちら


管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.21774

文字列の検索と個数のカウント
投稿者---ren(2005/07/05 01:11:06)


初めまして.最近C言語を始めたばかりで,課題で不明の部分があったので、相談に乗っていただきたいと思いました.

課題内容は,
1.塩基配列を1文字ずつ読み込む.
2.atgの文字列を見つけたら、カウントする.
3.ただし,改行・スペース・数字等は無視すること.

実行例は,
./a.out
1 tgccatga
11 tgccat
21 atccatg
^D
ATGは3個です.

という風になる、プログラムを作成したいのですが、
自分で

int main(){
int c,atg,n;
atg=0;
n=0;

while((c==getchar())!=EOF){
if(c=='a'){
n++;
}
if(n==1 && c=='t'){
n++;
}
if(n==2 && c=='g'){
atg++;
}
}
printf("ATGは%d個です\n",atg);
exit(0);
}

と作ってみたのですが,これだと空白等を認識してしまうのと、きちんとした個数がでません.
どこが悪いのかと,考え方から間違っているのであれば,ご指摘お願いします.


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:文字列の検索と個数のカウント 21775 si 2005/07/05 02:11:22
<子記事> Re:文字列の検索と個数のカウント 21777 かずま 2005/07/05 10:32:33
<子記事> Re:文字列の検索と個数のカウント 21781 ren 2005/07/06 19:54:42


No.21775

Re:文字列の検索と個数のカウント
投稿者---si(2005/07/05 02:11:22)


>1.塩基配列を1文字ずつ読み込む.
while((c==getchar())!=EOF){ } -- OK

>2.atgの文字列を見つけたら、カウントする.
このへんから、ロジックが怪しくなる。
n をフラッグとして使っていますが、単にインクリメントしてるだけだと
"aatg"見たいな並び、2個目の"atg"の検索、はどうなりますか?
a が来た n = 1,a の次に t が来た n=2、at の次に g が来た、atg++、
でしょう。

>3.ただし,改行・スペース・数字等は無視すること.
プログラムでは、これが出来ていない。
アルファベットでなければ読み飛ばさないといけない。
while(){
--> if ( isalpha(c)) { 2.の処理 }
}


この投稿にコメントする

削除パスワード

No.21776

Re:文字列の検索と個数のカウント
投稿者---si(2005/07/05 02:34:21)


ねんのため
フラッグ n のクリアを忘れずに


この投稿にコメントする

削除パスワード

No.21777

Re:文字列の検索と個数のカウント
投稿者---かずま(2005/07/05 10:32:33)


【掲示板ご利用上の注意】
 ※ソースの添付は「HTML変換ツール」で字下げ!
#include <stdio.h>
#include <ctype.h>

int main(void)
{
    int atg = 0, n = 0, c;

    while ((c = getchar()) != EOF)
        if (islower(c))
            if (c == 'a') n = 1;
            else if (n == 1 && c == 't') n = 2;
            else if (n == 2 && c == 'g') n = 0, atg++;
            else n = 0;
    printf("---\n%d\n", atg);
    return 0;
}



この投稿にコメントする

削除パスワード

No.21781

Re:文字列の検索と個数のカウント
投稿者---ren(2005/07/06 19:54:42)


遅くなってもうしわけないです。
siさん、かずまさんありがとうございます。
大変参考になりました。
もうちょっと、基礎等を勉強してがんばって行きたいと思います。


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧