• ベストアンサー

最初の頭文字一文字を・・・

secretdの回答

  • secretd
  • ベストアンサー率39% (50/126)
回答No.2

答えは1番さんので出ているので違う観点から. シングルクォートで変数を囲むと,中身の変数は展開されません. ダブルクォートで変数を囲むと,中身の変数は展開されます. $str = "abcde"; のとき print '$str'; は「$str」と表示され, print "$str"; は「abcde」と表示されます. したがって,変数の中身を評価したいわけですから, substr("$a", 0, 2); でも表示されるはずです.シングルクォートはまずいです.

関連するQ&A

  • 重複しない最初の文字を取り出す

    学校の課題で 「標準入力された文字列の中で、重複していない最初の文字を表示せよ」 というプログラムが出題されました。 例えば、 pen pan eagle と入力した場合、penは前に文字列がないので重複がない、panはpが重複するがaは重複しない、eagleはeもaも重複するがgは重複しなので、 p a g と表示するようなプログラムです。 どういう感じで書けばよいでしょうか? 言語は何でもよいといわれたのですが、私が何とかなりそうなJavaかPerlだとありがたいです。

  • 「頭」は「最初」なのでしょうか

    こんにちは。 知り合いの子に聞かれて、私にはよく分からなかったので質問します。 「頭から反対する」「曲の頭出しをする」 と言う表現のように、「最初」という意味で「頭」と言う語を使うことがありますが、これは人が「頭は上のほうにあって、物事の最初、からだの初めの部分だからだ」と思っている、と言うことでしょうか。 もっと簡単に言えば、人間は上にあるものを「最初」として認識しているのでしょうか。 「認識」というのが生物学なのか心理学なのかよく分からないのですが、こちらに質問させていただきます。よろしくお願いします。

  • 文字列を大文字にするプログラムがわかりません。

    小文字を大文字に、大文字はそのまま、それ以外は表示しないプログラムなんですが、 「それ以外を表示しない」というところが書けません。 #include <stdio.h> int main(void) { char x; char *p; puts("文字列を入力"); scanf("%s", &n); for(p = &n; *p != '\0'; p++){ if(*p >= 'a' && *p <= 'z'){ *p = *p - 'a' + 'A'; } } printf("%s\n", &n); return 0; } これではもちろん数字などはそのまま表示されてしまいます。 しかも、4文字までは普通に大文字で表示されるんですが 6文字だとcoredumpedしてしまいます。 すいませんが、ソース書いて教えていただけると嬉しいです。

  • PHP 文字列抽出

    はじめまして。PHPプログラミングの初心者で恐縮ですが、 ご質問させてください。 現在、携帯用HPを作成してPHPによりMYSQLからデータを 表示させるプログラミングを組んでいます。 そこで、DB(MYSQL)からデータを引っ張ってくる際に、 そのデータが長い場合には、 頭から10バイトを抽出して末尾に「…」を追加して 表示させるプログラミングを作成したいと考えております。 ところが、そのデータに半角文字が含まれ最後の10バイト目が 全角の場合、文字化けをしてしまいます。 ------------------------------------------- 例) 〔データ〕  あいaうえおか(23バイト)       ↓(substrにより10バイトを抽出して末尾に…を追加)  あいaうえ●… ●部分が文字化けする ------------------------------------------- 文字列の「お」の部分を1バイトで抽出している為、 文字化けしてしまっていると思いますが、 うまく「お」まで表示するか、もしくは「お」を 表示しないようにプログラミングをしたいのですが、 どのように組めばよいかわかりません。 非常に初歩的なご質問で恐縮ですがご教授頂けると ありがたく思います。 どうぞよろしくお願い致します。

    • 締切済み
    • PHP
  • Excel2007関数 頭文字を表示させたい

    こんにちは。 Excel2007で頭文字を表示させる方法について教えてほしいです。 A列に「株式会社」という単語を除いて会社名の頭文字(可能であればカナ)を表示させたいです。 【イメージ】 A  B ---------------------------- あ  あいうえお株式会社 か  株式会社かきくけこ 「株式会社」という単語を削除する関数は、(SUBSTITUTE(A*,"株式会社","")) 頭文字を表示する関数は、LEFT(PHONETIC(A*),1) ここまでは分かっているのですが組み合わせ方が分かりません。 マクロではなく関数で組み合わせたいので、この組み合わせではなく他の方法でもOKです。 どなたか教えていただけないでしょうか? よろしくお願いいたします。

  • エクセルで文字の頭に0を入れる方法

    仕事で使う内容なので詳しくはお話できませんが、例えば表示されたページ上に電話番号があるとします。 携帯電話なら 090… となりますよね? それが膨大にあるのでそのページに表示された枠をそのままドラッグしてコピペしようとしたのですが、表示は 90… というようになり、最初のゼロが削除されてしまいます。 こういう場合セルの書式設定を文字列などにして、例えばエクセルのA-1を選択した状態で入れればちゃんと090と表示されます。 ただダブルクリックせず、普通にA-1などをクリックして選択した状態でコピーしてしまうと90となり、文字の頭の0は認識してくれなくなります。 その数字の量も膨大にあるので、一つ一つしていたら膨大な時間がかかってしまうので、方法がわかるかた、そのベージからそのままコーピーする方法でどうすれば文章のはじめに0を表示することが出来るのか教えてくれませんか?

  • WMP・ライブラリの頭文字順表示をやめたい

    Windows Media Player11で普段はライブラリを表示するとき、アーティスト別でアイコン表示にしているのですが、 なぜか今日起動すると頭文字順?に並べられていて、頭文字ごとに線がひいてあります。 A--------(←わかりにくいですが線です) 頭文字がAのアーティスト 頭文字がAのアーティスト 頭文字がAのアーティスト B--------(←わかりにくいですが線です) 頭文字がBのアーティスト 頭文字がBのアーティスト 頭文字がBのアーティスト ・ ・ ・ というような感じになっています。 以前はこんな線はなく、アルバムアートを利用しているのもありジャケット写真がずらっと並ぶ状態になっていました。 単純にあいうえお順とかABC順ならまだいいのですが、 アーティスト名が漢字だと、漢字の一文字目で分けられているのです。 (山本太郎なら「山」で分けられる。他に山田ひろ子がいたとすると同じところに分けられる) ものすごく見ずらくて、以前のように戻したいです。 この表示になった原因がわからないので、ぜひ教えていただきたいです。お願いします!!

  • 文字列の先頭から指定バイトだけ取得

    質問があります。 1バイト文字が来ても2バイト文字が来ても 表示時に視覚的に同じ長さを返す関数が作りたいのですがうまくいきません。 $str1 = "あああaあ"; $str2 ="aaaaaaaaa"; function hoge($str) { return mb_substr($str, 0, 5); } これだと表示した場合に あああaあ aaaaa となってしまいます。 mb_substrをsubstrにすると2バイト文字の途中をsubstrで指定してしまうと文字化けしてしまいます。 何かうまい回避方法はないでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 1つのセルに文字を入れたときの、文字の頭を揃えたい

    教えてください。 1つのセルに、縦書きで文字を2列入れたのですが、 2列の文字数が違うと、頭の文字が揃いません。 一番最初の文字の頭を揃えたいのですが、方法が分かりません。 ご存知の方がいらっしゃいましたら、教えてください。

  • 文字表示の問

     学校でC言語の入門をやっています。今回の問題は、30文字分の配列を用意してから、「Suzuki_Ichiro」のように、ローマ字で姓と名の間にアンダースコアを入れた文字列を入力し、(1)そのまま表示、(2)アンダースコアなしで姓と名の間は空白で表示 「Suzuki Ichiro」、(3)姓と名を逆順に(姓と名の間は空白)表示 「Ichiro Suzuki」 というものです。  下は自分が考えたプログラムです。(左の番号は行番号で実際は入力していません) #include<stdio.h> 3 void main() 4 { 5 char x[30],a;   //30文字分の配列を用意 6 int i,p,q; 7 8 gets(x);     //文字列の入力指示 9 10 puts(x);     //文字列の表示(上の(1)) 11 12 for(i=0;i<30;i++) 13 { 14 15 if(x[i]=='_') p=i;  //アンダースコアの検出 16 if(x[i]=='\0') q=i;  //ヌルコードの検出 17 18 } 19 20 for(i=0;i<p;i++) 21 { 22 putchar(x[i]);  //最初の文字からアンダースコ                   アの1文字前まで表示 23 24 } 25 26 printf(" ");     //空白の表示 27 28 for(i=p+1;i<q;i++) 29 { 30 putchar(x[i]);  //アンダースコアの1文字後か                   らヌルコードの前まで表示 31                (上の(2)) 32 } 33 34 printf("\n"); 35 36 for(i=p+1;i<q;i++) 37 { 38 putchar(x[i]);  //同様に「名」の表示 39 } 40 41 printf(" ");     //空白の表示 42 43 for(i=0;i<p;i++) 44 { 45 putchar(x[i]);  //「姓」の表示(上の(3)) 46 } 47 48 printf("\n"); 49 50 }  以上です。このプログラムで実行すると、下のようになります。 Suzuki_Ichiro →(1) Suzuki Ichiro崇    →(2) Ichiro崇 Suzuki    →(3)  名の後ろに変な漢字が入ってしまうのです。原因は、  if(x[i]=='\0') q=i;  //ヌルコードの検出 のところでヌルコードの位置がちゃんと読み込めてないと考えています。本来なら、ヌルコード(\0)はIchiroの「o」の1文字後につくはずですが、ヌルコードが「o」のずっと後ろになってしまっているような気がします。  どうすれば、うまくいくでしょうか。よろしくお願いします。