while文の中でアルファベット以外なら空白を同じ場所に代入するということをやりたいのですが、' 'や" "を使ってもwarning文が出て来てしまいます。知恵袋には上記の方法で載っていたのでなぜwarningが出て来てしまうのかがわかりません。条件としてはstrcpy関数を使ってはいけないので配列に一文字ずつコピーするものを作りたいです。
warning文(ダブルクォーテーション時)
incompatible pointer to integer conversion assigning to
'char' from 'char [2]' [-Wint-conversion]
str_new[i]=" ";
warning文(シングルクォーテーション時)
empty character constant [-Winvalid-pp-token]
str_new[i]='';
^
ex0403.c:22:16: error: expected expression
c
1#include<stdio.h> 2#define N 256 3int main() 4{ 5 char str[N], str_new[N]; 6 int i; 7 8 printf("Input : "); 9 scanf("%s",str); 10 11 i = 0; 12 //printf("%c\n",str[i]); 13 while (str[i]!='\0'){ 14 if(('A'<=i && i<='Z') || ('a'<=i && i<='z')){ 15 str_new[i]=str[i]; 16 } 17 else{ 18 str_new[i]=" ";<---ここができません 19 } 20 i++; 21 //printf("a\n"); 22 } 23str_new[i]='\0'; 24 printf("Before : %s\n", str); 25 printf("After : %s\n", str_new); 26 return 0; 27}
回答3件
あなたの回答
tips
プレビュー