ここから本文です

解決済みの質問

C言語で文字配列の中に 空白を入れたいのですが、どういう方法を使えばできますか...

ironflastさん

C言語で文字配列の中に 空白を入れたいのですが、どういう方法を使えばできますか?
初心者なので簡単に説明していただけると幸いです

補足
すみません 質問の仕方が不適切でした たとえば d[20]とさきに定義して、全角スペースを10個いれる。 などという処理をしたいんです。

違反報告

ベストアンサーに選ばれた回答

maxairabuさん

#include<stdio.h>
int main(void){
char str[]="ABC";

int i;
for(i=0;str[i]!='\0';i++){
if(str[i]=='B'){
str[i]=' ';
}
} printf("%s",str);

return 0;
}

回答は2種類ほどあると思うけど
例えばABCと初期化して
AB C(BとCの間に空白を入れる)
A C(Bを削除して空白を入れる方法)

どちらでしょうか?
こんなやり方もあったり

#include <stdio.h>
#include<string.h>
int main(void){
char d[20];
scanf("%s",d);
printf("\n");
char d2[31]={"__________"};
strcat(d2,d);
printf("%s",d2);

return(0);
}

  • 違反報告
  • 編集日時:2012/1/31 13:08:41
  • 回答日時:2012/1/31 09:56:09

この質問は投票によってベストアンサーが選ばれました!

この質問・回答は役に立ちましたか?
役に立った!

お役立ち度:お役立ち度 0点(5点満点中)0人が役に立つと評価しています。

ベストアンサー以外の回答

(2件中1〜2件)

並べ替え:回答日時の
新しい順
古い順

 

ecl_love_youさん

char *a="abcdef";
char b[100];
sprintf(b,"%.3s %s",a,a+3);

qwertyuio3456さん

置換する場合

#include <stdio.h>

int main(void)
{
char d[]="Hello world";

printf("空白を入れる前の文字列:%s\n",d);
d[2]=' '; //空白を入れる処理
printf("空白を入れた後の文字列:%s\n",d);

return 0;
}

======================
挿入する場合

#include <stdio.h>

int main(void)
{
int i,j;
char d1[256]="Hello world",d2[257];

printf("空白を入れる前の文字列:%s\n",d1);
for(i=0;i<5;i++)d2[i]=d1[i];
d2[5]=' ';
for(j=6;j<256;j++)d2[j]=d1[j-1];
printf("空白を入れた後の文字列:%s\n",d2);

return 0;
}

<補足回答>
すみません 質問の仕方が不適切でした たとえば d[20]とさきに定義して、全角スペースを10個いれる。 などという処理をしたいんです。
==>for文では無理のようですので以下ではどうですか。知恵袋の回答ではスペースが詰められるので_で代用しています。
これだと、配列が大きい場合、大変かもしれませんが、普通はこんなことはしませんので、当方は気にならないです。
変数の初期値は設定していない場合、どうなるか不明ですが、それを前提にしてプログラミングすればいいだけです。

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

int main(void)
{

char d[21]; //20でも正常に動作しているようだが、改行が入るように21にした方がいいのでは、、、
strcpy(d,"__________");
printf("空白を入れた後の文字列:%s\n",d);

return 0;
}

なぜ、全角にしなくてはいけないのかが疑問ですが、、、、、、

  • 違反報告
  • 編集日時:2012/1/31 11:32:28
  • 回答日時:2012/1/31 09:47:47

この質問に付けられたタグ

タグとは

知恵ノートとは?

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。

お客様自身の責任と判断で、ご利用ください。

話題のキーワード

[カテゴリ:C言語関連]

ただいまの回答者

01時43分現在

2309
人が回答!!

1時間以内に4,161件の回答が寄せられています。

>>回答ひろばに行く


知恵コレに追加する

閉じる

知恵コレクションをするID/ニックネームを選択し、「追加する」ボタンを押してください。
※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。

ほかのID/ニックネームで利用登録する