ページ 11

VC++2008EEで、1バイト文字コード限定プログラム作成方法は?

Posted: 2010年4月27日(火) 17:25
by non
お久しぶりです。nonです。
Windows7の64ビットにしたら、なぜかBCCが動かなくなりました。どうせならと思い、
VC++2008EEに乗り換えることにしました。

さて、C言語プログラムで1バイト文字コードの下のプログラムを動かせるように設定するには
どうすればよろしいのでしょうか?
下のプログラムは小文字を大文字に変換しています。エラー処理なし。
#include <stdio.h>

void strupper(char *s)
{
    while(*s!='\0'){
        *s-=('a'-'A');
        s++;
    }
}

int main()
{
    char *str="abcdefg";
    strupper(str);
    printf("%s\n",str);
    return 0;
}
今の設定は、Win32コンソールアプリケーションで
コンソールアプリケーション、空のプロジェクト
ファイル名の拡張子を.cで、
コンパイル言語の選択を「Cコードとしてコンパイル(・TC)」
文字セット「マルチバイト文字セットを使用する」
char型を規定でunsignedを「はい」

にしてます。
コンパイルエラーはありませんが、実行すると暴走します。

Re:VC++2008EEで、1バイト文字コード限定プログラム作成方法は?

Posted: 2010年4月27日(火) 17:44
by たいちう
char *str="abcdefg";

char str[/url]="abcdefg";

Re:VC++2008EEで、1バイト文字コード限定プログラム作成方法は?

Posted: 2010年4月27日(火) 17:46
by たいちう

Re:VC++2008EEで、1バイト文字コード限定プログラム作成方法は?

Posted: 2010年4月27日(火) 17:53
by non
たいちうさん、お久しぶりです。
確かに、それで動きますね。ということは、設定は良いということですね。

さて、そこで困った。
char *str="abcdefg";

どうして?あれ?どうしてだめなんですか?

Re:VC++2008EEで、1バイト文字コード限定プログラム作成方法は?

Posted: 2010年4月27日(火) 17:55
by non
ああ、そうですね。うっかりしてました。お恥ずかしい。

Re:VC++2008EEで、1バイト文字コード限定プログラム作成方法は?

Posted: 2010年4月27日(火) 17:58
by non
解決をつけるのを忘れてました。