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

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

新規登録して質問してみよう
ただいま回答率
85.35%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

1回答

2497閲覧

重複したアルファベットを除去する

nagano-yuhi

総合スコア39

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2020/07/29 06:35

入力されたテキストの中に現れた英字を調べ,一度も使われなかった英字すべてをアルファベット順に1行に書き出すプログラムを作りなさい。

なお,英字はすべて小文字に直して扱いなさい。

入力
AbCDEfg:
JklmopqZXY,
123UVwRsH.

出力
int

問題文と出力結果は上記の通りです。自分のやりたいこととしてはa~zまでの文字列を用意して入力した文字列と比較し同じものがあったら取り除くことを行いたいと考えています。教えていただきたいです。

#include <stdio.h> #define N 10000 int main(void){ char str1[N]; char str2[26]='abcdefghijklnmopqrstuvwxyz'; scanf("%s", &str1); int i; int j; int k=0; for(i=0;str1[i]!='\0';i++){  //同じ文字を探す if(str1[i]!='*'){ str2[k]=str1[i]; ++k; for(j=i+1;str1[j]!='\0';j++){ if(str1[i]==str1[j]){ str1[j]='*'; } } } } str2[k]='\0'; printf("%s\n", str1); return 0; }

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ttyp03

2020/07/29 07:39

困っていることを書きましょう。 少なくともstr2の定義の箇所でエラーが出るはず(シングルクォーテーションで括ってるから)ですが、それの件でしょうか?
nagano-yuhi

2020/07/29 09:12

コンパイルエラーに関しても質問したいです。
guest

回答1

0

[ご参考(別解)] 各英文字が現れる数を(文字毎に)勘定し、それが0の文字だけ取り出す

C

1#include <stdio.h> 2#include <string.h> 3#include <ctype.h> 4 5int main(void) { 6 char str[] = "AbCDEfg:" "JklmopqZXY," "123UVwRsH."; 7 char histogram[26] = {0}; // 度数分布表 8 9 char* p; 10 int i; 11 // 入力文字列中の各文字に対し 12 for ( p = str; *p != '\0'; ++p ) { 13 char ch = tolower(*p); // 小文字に変換 14 // 英文字の範囲であるなら 15 if ( ch >= 'a' && ch <= 'z' ) { 16 histogram[ch-'a']++; // 度数を+1 17 } 18 } 19 20 // 度数が0である英文字を str に集める 21 p = str; 22 for ( i = 0; i < 26; ++i ) { 23 if ( histogram[i] == 0 ) { 24 *p++ = "abcdefghijklmnopqrstuvwxyz"[i]; // いささかトリッキーwww 25 } 26 } 27 *p = '\0'; // '\0'で終端する 28 29 printf("%s\n", str); 30 return 0; 31}

投稿2020/07/29 07:22

episteme

総合スコア16612

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nagano-yuhi

2020/07/29 09:15

回答ありがとうございます。難しいですがこの方法でも少し考えてみたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問