解決済みの質問
C言語で文字配列の中に 空白を入れたいのですが、どういう方法を使えばできますか...
C言語で文字配列の中に 空白を入れたいのですが、どういう方法を使えばできますか?
初心者なので簡単に説明していただけると幸いです
- 補足
- すみません 質問の仕方が不適切でした たとえば d[20]とさきに定義して、全角スペースを10個いれる。 などという処理をしたいんです。
-
- 質問日時:
- 2012/1/31 09:40:26
-
- 解決日時:
- 2012/2/14 12:46:38
-
- 回答数:
- 3
-
- 閲覧数:
- 132
-
- ソーシャルブックマークへ投稿:
- Yahoo!ブックマークへ投稿
- はてなブックマークへ投稿
- (ソーシャルブックマークとは)
ベストアンサーに選ばれた回答
#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人が役に立つと評価しています。
ベストアンサー以外の回答
(2件中1〜2件)
- 並べ替え:回答日時の
- 新しい順
- |
- 古い順
置換する場合
#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

