"" に関する原因と対処

このコンパイルエラーの原因と対処に関して説明します。

スポンサード リンク

Microsoft Visual C++にて以下のソースでコンパイルエラーが発生します:

コンパイルエラーメッセージ:
warning C4806: '&=': 安全でない演算: 'bool' 型から 'char' 型への上位変換を行うと与えられた定数に等しくなりません

ソース(バグ有り):

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
int i = 0;
char test_string[] = " 12345";
//文字列の先頭からスペースではない文字をサーチする
while ( test_string[i] != '\0' && test_string[i] &= ' ' )
{
i++;
}
//元の文字列にスペースをカットしたポインタからコピーする
strcpy_s(test_string, &test_string[i]);
printf("%s" , test_string);
return 0; }


原因:


対処:


ソース(修正済み):

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
int i = 0;
char test_string[] = " 12345";
//文字列の先頭からスペースではない文字をサーチする
while ( test_string[i] != '\0' && test_string[i] == ' ' )
{
i++;
}
//元の文字列にスペースをカットしたポインタからコピーする
strcpy_s(test_string, &test_string[i]);
printf("%s" , test_string);
return 0; }

スポンサード リンク



[コンパイルエラーコード、メッセージに戻る]