質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.05%

配列に空白を代入できません。

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 4,856

Teemro_431265

score 29

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

#include<stdio.h>
#define N 256
int main()
{
  char str[N], str_new[N];
  int i;

  printf("Input : ");
  scanf("%s",str);   

  i = 0;
  //printf("%c\n",str[i]);
  while (str[i]!='\0'){
    if(('A'<=i && i<='Z') || ('a'<=i && i<='z')){
    str_new[i]=str[i];
    }
    else{
    str_new[i]=" ";<---ここができません
    }
    i++;
    //printf("a\n");
  }
str_new[i]='\0';
  printf("Before : %s\n", str);
  printf("After  : %s\n", str_new);
  return 0;
}
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • mather

    2018/10/18 14:54

    シングルクオーテーションでもまったく同じ警告文なのですか?

    キャンセル

  • Teemro_431265

    2018/10/18 15:00

    すみません、少し違いましたので直します。

    キャンセル

回答 3

+2

文字は 'a' のように、文字列は "abc" のように記述します。
str_new は文字列ですが、str_new[i] は文字なので str_new[i] = ' ' としなければいけません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/10/18 14:26

    見づらいと思うのですが上にシングルクォーテーションでも同じくできないと書きました。同じくwarningが出て来ます。

    キャンセル

  • 2018/10/18 14:27

    できます。全角と半角を間違えていませんか?
    私の回答からコピペしてください。

    キャンセル

  • 2018/10/18 14:34

    もしそれでもできなければ、質問のソースをシングルクォーテーションを使ったものと差し替え、ウォーニングメッセージも質問にコピペしてください。
    これらは手打ちや意訳や省略はせず、そのままコピー&ペーストしてください。

    キャンセル

  • 2018/10/18 16:47

    おそらく全角で入れていたかもしれません、半角空白を入れたら成功しました。ありがとうございました。

    キャンセル

checkベストアンサー

+1

str_new[i]=" ";<---ここができません


str_new[i]=' ';

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/10/18 14:24 編集

    見づらいと思うのですが1行目にシングルクォーテーションでもできませんでしたと書きました。同じくwarningが出て来ます。

    キャンセル

  • 2018/10/18 14:33

    Teemro_431265 の書いてあるソースには '' の中に、半角スペースが入っていないのですが、いれてやってみましたか?

    キャンセル

  • 2018/10/18 16:46

    できましたぁぁぁ!!!そりゃできませんよね(笑)
    完全に自分では入れた気でいました、ありがとうございます。

    キャンセル

  • 2018/10/18 17:19

    ごめんなさい。 Teemro_431265 さんといれるつもりが「さん」をつけそこなってました。

    キャンセル

+1

char リテラルとして正しくない、というエラーです。
半角空白文字を指定したいはずなのに文字がありません。

empty character constant [-Winvalid-pp-token]
str_new[i]='';
^
ex0403.c:22:16: error: expected expression

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/10/18 16:48

    自分では入れていたつもりなのですが入っていませんでした、ありがとうございます。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.05%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る