相補配列
C言語ケーススタディ

Study C Ver2販売開始のお知らせ

 C言語の勉強や教育用に最適です。
 2004/8/23よりStudy C Ver2の販売を開始しました。
 Study C Ver2の新しい機能については
 こちらをご参照ください。

 DNA塩基配列の5'末端からの相補配列を作るには、文字列(塩基配列)を前後逆転する必要があります。 文字列操作のケーススタディに文字列の前後逆転を行うプログラムがあるのでベースとして使用します。

                                                                               
#include <stdio.h>

main()
{
	char result[100];
	char *str;
	int i, j, len;

	str = "acgtaaccggttatgctata";
	len = strlen(str);
	j = 0;
	for (i = 0; ; i++) {
		if(*(str+i) == '\0')
			break;
		result[j++] = *(str+(len-i-1));
	}
	result[j] = '\0';
	printf("%s\n", result);
}
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...

上記のプログラムを実行するとstr変数にセットした塩基配列が前後逆転して表示されます。
atatcgtattggccaatgca
前後逆転した塩基配列文字列は、配列resultに代入されていきます。 このとき、文字列を下記のように変換します。
                                                                               
A C G T
↓ ↓ ↓ ↓
C A T G

変換は大文字小文字ともに行います。また、上記以外の文字は変換しないことにします。
                                                                               
#include <stdio.h>

main()
{
	char result[100];
	char *str, ch;
	int i, j, len;

	str = "acgtaaccggttatgctata";
	len = strlen(str);
	j = 0;
	for (i = 0; ; i++) {
		if(*(str+i) == '\0')
			break;
		ch = *(str+(len-i-1));
		switch(ch){
		case 'a': ch = 't'; break;
		case 'A': ch = 'T'; break;
		case 'g': ch = 'c'; break;
		case 'G': ch = 'C'; break;
		case 'c': ch = 'g'; break;
		case 'C': ch = 'G'; break;
		case 't': ch = 'a'; break;
		case 'T': ch = 'A'; break;
		}
		result[j++] = ch;
	}
	result[j] = '\0';
	printf("%s\n", result);
}
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...

C言語でゲームプログラマーを目指す方へ
 ■C言語ゲームプログラミング講座
 C言語でのゲームプログラミングを解説する講座
 始めました。

お問い合わせ先 C言語のトップページに戻る Copyright(C) 2003 潟Iーキッド