• 締切済み

文字列変換

charmer29-2の回答

回答No.2

/* asciiのようにアルファベットが順に並んでいる文字コード限定 */ /* おまけに大文字のみが対象かつ、AB以外は小文字に転写 */ void changeString(char * foo) { static char const changeTable[] = "THcdefghijklmnopqrstuvwxyz"; for (; * foo; ++foo) { char bar = * foo; if (bar >= 'A' && bar <= 'Z') { * foo = changeTable[bar - 'A']; } }

関連するQ&A

  • 変換テーブルを使った、文字列置換[JavaScript]

    以下のような、変換テーブルがあるとします。 var ascii = [' ', '!', '"', '#', '$', '%', '&', "'", '(', ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F','G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~']; var htmlChar = [' ', '!', '"', '#', '$', '%', '&', ''', '(', ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~']; ブラウザの「ソースを見る」で、ソースを見るとHTMLのフォームのテキスト入力フィールドのvalueに特殊文字コード「'」と表示されているとします。 例;ブラウザの「ソースを見る」で、ソースを見た場合: <input type="text" value="'" /> これを変換テーブルを使って、ブラウザの「ソースを見る」で、ソースを見たときに、特殊文字(' なら '(シングルクォート)に表示させたいのですが、可能でしょうか? 変更後の例;ブラウザの「ソースを見る」で、ソースを見た場合: <input type="text" value="'" />

  • 文字列を数列に変換

    文字列(アルファベットのみ)を数列に変換するプログラムを作りたいのですが、うまくいきません。 [A = 01、B = 02、~ Z = 26、 Space = 00]とし、例えば入力が「ADAM」であれば、出力は「01040113」となるようなプログラムです。A~Z以外の文字(!, ?, @, 1, 2など)は無視します。 ちなみに言語はJavaです。 誰かご教授いただけないでしょうか?

    • ベストアンサー
    • Java
  • 文字列を数字型に変換したい

    いつもお世話になっております。 eclipseというツールでC言語のプログラムを触っているのですが、 文字列の数字を数値型に変換して掛け算をしたいのですが、 型変換の関数はありますでしょうか??

  • ポインタ文字列をchar[ ]の文字列へ変換する方法

    C言語の問題で悩んでいます。 ポインタ型で受け取った文字列を、通常の配列に変換し、それぞれの文字列がいくつ使われているというプログラムを組みたいのですが、うまくいきません。 とりあえずここまでのソースを。 #include <stdio.h> int count[95]={0}; void Countx(void){ int x; for(x=0;x<=95;x++){ if(count[x]!=0){ printf("'%c': %d\n",x+32,count[x]); } } } void County(char *str){ int c; for(c=0;c<=20;c++){ count[c+32]=str[c]; } } int main(void){ County("I am a BILL."); Counxt(); return 0; } "I am a BILL"の部分が以下のように ' ':3 '.':1 'a':2 というふうにそれぞれの文字と、利用された回数を出すようにプログラムを組みたいのですが、上記のままだとが ' ':84 '!':104 '"':105 と言う風に、文字コードが空白から順番に、右の回数の部分はなぞの数字が表示されてしまいます。 どうか理想どおりの結果が出るようにする方法を教えてください。 よろしくお願いします。

  • 文字列 ポインタ

    3つの文字ポインタを作成し,最初のポインタが「one」を,二番目のポインタが「two」を,三番目のポインタが「three」をさすように初期化するプログラムを作成しなさい.次にこれらの3つの文字列の順列をすべてプログラムに表示させなさい. という問題で順列をうまく並べる方法がわかりません.手打ちでprintを6個作ることはできますが... うまい方法があるかないか,どのような方法か教えてください.よろしくお願いします. #include<stdio.h> int main(void) { char *a,*b,*c,*t; int i; a="one"; b="two"; c="three"; printf("%s\t%s\t%s\n",a,b,c); return 0; }

  • 10進数の2進数文字列変換

    10進数の2進数文字列変換 ◆開発環境 OS:Linux(Ubuntu9.10) コンパイラ:gcc4.4 言語:C ◆質問内容 ポインタ*Aに格納されている10進数を2進数の文字列に変換し、 文字配列Bに格納したい。 バッファとして*fpを準備。 webで調査した結果を以下のソースのようにアレンジしましたが、 fputc関数の処理で、プログラムが強制終了してしまいます。 何か、良い方法ございませんでしょうか。 ◆サンプルソース void Dec_conv_bit(long *A,char *B){ unsigned int bit,n; //ビット比較用 unsigned int *fp = &n; n = (unsigned int)A; for(bit = 1 << sizeof(int)*8-1; bit > 0; bit >>= 1){ fputc((n & bit)?'1':'0',fp); } sprintf(B,"%s",fp); //putchar('\n'); }

  • 文字列をint型へ変換するには?

    c言語初心者です。 こちらのプログラムだとうまく表示されません何故でしょう? わかる方是非教えていただきたいと思います。 #include<stdio.h> #include <stdlib.h> int main() { int  num ;     char sum1[4]; printf("数字 str1 =>"); scanf("%d",&num); num= atoi(sum11); printf("sum1= [%d]\n",num); } コマンドに数字を入力したあとintに変換してnumに表示させたいのですが、、、、

  • OCRで文字変換したいのですが。

    Brother 複合機 DCP-595CN 使用。スキャン項目の三段目 OCR:テキストデータ変換で 本の文字を読み取り wordに写しその文字を自由にフォントやサイズを変えたい。  PCは MacBook Air バージョンは Yosemite 10.11 から Hi Sierraの 10.13.8 に変えました。 以下はできてこんなところです! c c r y O w r n e a n a s h a r k k n o w s y o w % ' l t @ e ' b o y r & s @ e d , h a r d l y a b t e t o c r e d i t h i s h e a r i n g , T h e w o m a n n o d d e d , n o t l o o k i n g a t a n g r t h i n g b u t h e r s k i r t . P a u l o ' s b r e a t h e x p l o d e d " B u t t h a t ' s i m p o s s i b l e ! " T h e w o m a n p a u s e d t o r a i s e b l a c k e y e s i . n u r o n d e r , c ' Y o u h a v e n e v e r h e a r d o f m e @ " s h e a s k e d . P a u l o w a s a t a l o s s t o a c c o u n t f o r t h e w o m a n ' s c a s u a l a c c e p t a n c e o f t h e s h a r k ' s p r e s e n c e A l l k n e w s 3 h a r k s w e r e a m e n a c e ! Y e t t h i s o d d o   ※OKWAVEより補足:「ブラザー製品」についての質問です。

  • ウェーブレット変換の順変換と逆変換について

    1行の画像をimage1[0][k]に入れて、 ウェーブレット変換をしてc[a][b]を求め、 そこから逆変換してimage2[0][k]に戻す その際のウェーブレットはメキシカンハット型にしているつもりです このようなプログラムを作っているのですが、 順変換 t=pow(2,-a)*k-b; c[a][b]+=image1[0][k]*( pow(2,-2/a) * (1-pow(t,2) ) * exp( 1/2*pow(t,2) ) ); 逆変換 temp[k]+= pow(a,-2) * c[a][b]* pow(2,-2/a) * (1-pow(t,2) * exp( -1/2*pow(t,2) ) ) ); image2[0][k]=(int)floor(temp[k]); それぞれa,b,kはループをかけています。 これでtemp[k]を見ると恐ろしいほどずれた数字が入ってしまいます。 何が間違っているのか、恐らく計算が間違えていると思うのですが どこが間違えているのかを教えていただきたいです。 是非よろしくお願いします。

  • Shift_JIS(16進)を文字に変換する方法

     お世話になります。  現在、文字コードを文字に変換するプログラムを組んでいるのですが、Shift_JIS(16進)を文字に変換する方法が分からず困っています。  具体的には、"82a0 "という文字列を持っていて、それを「あ」という文字に変換するといった感じなのですが・・・。C言語でこれは可能なのでしょうか?可能なのだとしたらどういった手順で行えばよろしいのでしょう。  因みにC++ではなくC言語です。  よろしくお願いします。