約 441,659 件
https://w.atwiki.jp/opto-c/pages/35.html
文字列の代入 C言語においては文字列は単純に代入できない。 例えば以下はNG。 char str[10]; str = "Hello"; 例外的に宣言時の代入だけ認められる。以下はOK。 char str[10] = "Hello"; 宣言時以外で代入する場合は、sprintf関数を使用する。 ★コード★ #include stdio.h int main(void){ int i; char str[100]; char str1[] = "文字列"; char str2[] = "連結"; char str3[] = "お手軽"; for (i=1; i =10; i++) { /* ループ回数を文字列に格納 */ sprintf(str,"ループ回数:%2d",i); puts(str); } sprintf(str,"%sの%sだって%sよ",str1,str2,str3); puts(str); return 0; } ★実行結果★ ループ回数: 1 ループ回数: 2 ループ回数: 3 ループ回数: 4 ループ回数: 5 ループ回数: 6 ループ回数: 7 ループ回数: 8 ループ回数: 9 ループ回数:10 文字列の連結だってお手軽よ
https://w.atwiki.jp/reverse_python/pages/15.html
ヒアドキュメント """で文字列を囲みます。文末に\を記述すると、直後の改行は無視されます。 # ヒアドキュメントで代入 text = """\ This is a example \ of here document.""" print text # This is\na example of here document. 先頭と末尾の空白文字の削除 strip() を使います。 # 先頭にタブと空白、末尾に改行がある文字列の例 text = "\t strip\n" # 先頭と末尾の空白文字の削除 print text.strip() #= strip
https://w.atwiki.jp/tetdm/pages/25.html
文字の配列 char str[4]; int count; str[0] = R ; str[1] = e ; str[2] = n ; str[3] = a ; for(count = 0 ; count = 3 ; count++) { printf("%c" , str[count]); } printf("\n"); } 文字列を出力するのに,いちいちfor文を書くのは面倒. 配列の先頭アドレスを指定して,%s書式で出力できるようにする #include stdio.h main() { char str[5]; str[0] = R ; str[1] = e ; str[2] = n ; str[3] = a ; str[4] = \0 ;//文字列の終わりを意味するNULL文字 printf("%s\n",str);//%s書式で出力 } 演習 以下のプログラムの実行結果を書き,%s書式は,どこからどこまでの文字を出力するか答えよ. #include stdio.h main() { char str[7]; str[0] = R ; str[1] = e ; str[2] = \0 ; str[3] = n ; str[4] = a ; str[5] = b ; str[6] = \0 ;//文字列の終わりを意味するNULL文字 printf("%s\n%s\n",str, str[4]);//%s書式で出力 } 文字配列の初期化 NULL文字は勝手に挿入される. #include stdio.h main() { char str1[] = { R , e , n , a , \0 }; char str2[] = "Rena"; int n1 = sizeof(str1);//配列の長さ int n2 = sizeof(str2);//配列の長さ printf("%s\n",str1);//%s書式で出力 printf("%s\n",str2);//%s書式で出力 printf("配列の長さは%d\n",n1); printf("配列の長さは%d\n",n2); } char型のポインタ ちょっと例外(ふつうはポインタ変数の初期化はできない) #include stdio.h main() { int *x = {1,2,3}; } char型のポインタ変数は初期化できる #include stdio.h main() { char *str2 = "Rena"; char *str1 = { R , e , n , a , \0 }; printf("%s\n",str2); printf("%s\n",str1); } 演習 ポインタ変数pを用いて文字列deを出力するプログラムを書け. char str[] = { a , b , c , \0 , d , e , \0 }; char *p;
https://w.atwiki.jp/lookworld/pages/20.html
文字列の長さを求める
https://w.atwiki.jp/shinobu2/pages/19.html
文字が1つの文字を表していたのに対して文字列は複数の連続する文字を表します。例えば「こんにちは」や「Hello」など複数の文字が連続するものが文字列となります。 文字列を画面に出力する場合など、文字列を値として使用する場合には文字列リテラルという呼び方をすることもあります。 文字列の値を表現する プログラムの中で文字列の値を記述する場合はダブルクォーテーション(")で囲んで表現します。 "こんにちは" "Hello" 「"」から「"」までに記述された文字の集まりが文字列となります。 ※他のプログラミング言語の場合「"」の代わりに「 」で文字の集合を囲うことで文字列を表すことができるものもありますが、Javaでは文字を表す場合に「 」は使用しますので文字列には必ず「"」を使って下さい。 1つだけの文字からなる文字列と文字はいっけん同じように見えますが元になっているデータ型が異なるためまったく別のものとなります。詳しくは別のページで確認します。 わからないところがあったら以下に書き込んでください。 test -- (test) 2010-12-10 22 01 03 テスト -- (test) 2010-12-10 23 00 34 hosei -- (HOSEI) 2011-01-31 14 10 34 test -- (名無しさん) 2011-01-31 14 10 53 名前 コメント すべてのコメントを見る
https://w.atwiki.jp/phptest/pages/27.html
Java 部分文字列は String#substring(int, int)。index, index である。第二引数は文字列長の指定ではない。 String s = "ABCDEFG"; int i = ... //取り出し開始位置。0基準。 int j = ... //取り出し終了位置。同上。指定位置の文字は含まれない。 //i == 0 の場合は、取り出された結果の文字列の長さは j になる。 String sub = s.substr(i, j); 一致判定は String#startsWith(String), String#endsWith(String) 検索は String#indexOf(String)。返り値は0基準。 PHP Java の substr, startsWith, endswith, indexOf に相当するもの。 index,index か index, length かも明記。基準が0か1かも明記。 もし少し探して見つからなければ正規表現で解決するのでしょうね。 mb_substr(文字列,index,length)とすると文字数が取れます。substr(文字列,index,length)とするとバイト数からとり、たとえば1(1バイト)と1(2バイト)で結果が変わります。 $str2 = こんにちは ; $substr3 = substr($str2, 2, 2); $substr4 = mb_substr($str2, 2, 2); print($str2. の2バイトから2バイト取り出すと .$substr3. です br ); //ん(String) print($str2. の2文字目から2文字取り出すと .$substr4. です br ); //にち //失敗した場合や文字列が空の場合はFALSEが返されます。 参照:phpbook-文字列の一部を取得 文字列の一致がとりたいときにはいくつかの方法があります。 1.strstr(文字列,一致されたい文字列)では文字列の最初に出てくる「一致されたい文字列」を探します。 $email = name@example.com ; $domain = strstr($email, @ ); echo $domain; // @example.com と表示します //失敗するとFALSE しかしStringで見つかった所から最後までの長さの文字列を返そうとするので注意が必要です。 参照:The saibase-文字列の一致 2.strpos(文字列,一致されたい文字列)はstrstrの機能に加え、指定された文字列やfalseを返すことが出来ます。 $mystring = abc ; $findme = a ; $pos = strpos($mystring, $findme); //この関数でも失敗するとFALSEを返します。 //ここの判定式で==を使ってしまうとFALSE == 0と見なされ、indexの0と誤認されてしまいます。 if ($pos === false) { echo "文字列 $findme は、文字列 $mystring の中で見つかりませんでした"; } else { echo "文字列 $findme が文字列 $mystring の中で見つかりました"; echo " 見つかった位置は $pos です"; } 参照:-PHPで前後一致を取る javascript String#substr(index,length); //JavaやPHPと同じようにsubstr(index,length);メソッドが使えます。 var alpha = "abcdefg".substr(2,4); //"cdef"が入ります。 //指定lengthが存在しなかったり、それが全長よりも大きい場合にはindexからの全長を返します。 //まずindexから存在しなかったときは-1を返します。 document.write(alpha); //cdef 参照:とほほのJS-Stringライブラリ String#indexOf(String); //String#indexOf(string);メソッドでは、出現する位置をintで返すことが可能です。 var beta = "hijklmn".indexOf("k"); //見つからない場合は-1を返します。 document.write(beta); //3 参照:ぶれすとつーる-単語前方一致・後方一致 前方一致、後方一致もPHPと同様に取れます。 Java の substr, startsWith, endswith. indexOf に相当するもの。 index,index か index, length かも明記。基準が0か1かも明記。 もし少し探して見つからなければ正規表現で解決するのでしょうね。 SQL 独自の簡単なワイルドカードを使って判定を行います。% 任意の0文字以上の文字列 _ 任意の1文字 サンプル //prefectureデータベースを使用。 +------+--------+------------+ | code | name | population | +------+--------+------------+ | 01 | 北海道 | 5570000 | | 02 | 青森県 | 1407000 | | 03 | 岩手県 | 1364000 | +------+--------+------------+ mysql select * from prefecture where name like __県 ; //実行結果 +------+--------+------------+ | code | name | population | +------+--------+------------+ | 02 | 青森県 | 1407000 | | 03 | 岩手県 | 1364000 | +------+--------+------------+ ※likeを使用する場合、where内には関数のみを記述して下さい。 × select * from prefecture where code = 03 like name = __県 ; ○ select * from prefecture where name like __県 ; ×のまま実行するとどちらの条件式も反映されません。 参照:DBOnline-パターンマッチングで比較 Excel数式 LEFT関数に代表される関数が使用できます。 =LEFT(文字列,[文字数]) :文字列の左端から指定した文字数だけ取り出す。 =RIGHT(文字列,[文字数]) :文字列の右端から指定した文字数だけ取り出す。 =MID (文字列,開始位置,文字数) :文字列の指定した位置から指定した文字数だけ取り出す。 参照:Excel基本講座 検索は検索機能を使って行うほか、マクロを組むことでも実行可能なようです… 参照:Excel VBA 入門講座
https://w.atwiki.jp/itkakaricho/pages/27.html
( *`ω´) 文字列型を使いたい場合には "string" ってのを使って指定します。 文字列型は長さとかマチマチだし、かなり高度なことをやっているのです。 具体的には、一つの文字を表すのが "char" と呼ばれるもので それを繋げたものが "string" です。これで文字列を扱うんす。 ちなみに英語では "string" ってのは紐とか繋がった一連のものを指すのです。 まあ使うのは簡単です。 使い方は↓こんな感じっす。 #include iostream #include string int main(){std string x;x = "IT";x = x + " Kakaricho-";std cout x std endl;return 0; } 文字列はダブルクォーテーションで囲ってあげます。 文字列は足し算だけできます。 文字列を繋げることができるんすな。 ( *`ω´) これで基本的なデータ型は全部おわりっす。余裕ですな。
https://w.atwiki.jp/mopsprogramming/pages/53.html
Mopsでは標準Forth仕様の文字列も用いることができます。Forth文字列は、文字列を格納しているバッファメモリーの先頭のアドレス値と、格納されている文字列のバイト長との2つの値の組で表現されます。スタック効果コメントとしては、addr lenという形でよくあらわれます。 文字列リテラルは、ワードS"と区切り文字"で囲んで表わします。例えば、「I have a G3 iMac.」という文字列リテラルは、 S" I have a G3 iMac." と書きます。つまり、S"の後には空白が必要ですが、終わりの"の前には空白は要りません。このコードは、実行時には、この文字列リテラルのaddr lenをデータスタックに積みます。 なお、Mopsでは、「S"」の簡約形として「"」を使うことができます。つまり、 " I have a G3 iMac." としても、上と同値です。 複数の箇所から同じ内容の文字列を利用したいときには、文字列に名前をつけて、名前で呼び出せるようにすれば、便利ですし、メモリー効率も良くなります。その方法を提供するのが、文字列定数です。SCON宣言で創り出します。雛形は: SCON 名前 (区切り文字)文字列内容(区切り文字) となります(ただし、コードとして区切り文字に括弧は不要です。)。具体例では、 SCON myMac "I have a G3 iMac." となります。ここでは区切り文字に「"」を用いましたが、区切り文字には空白文字以外の1バイト文字(ASCII文字)ならなんでも使えます。文字列定数名(空白文字で切れる)の後の最初の非空白文字は区切り文字とみなされ、次にその文字が出てくる直前までが、文字列定数の内容とされます。ですから、文字列自体が「"」文字を内容に含む場合には、違う文字を区切り文字とする必要があるわけです。 一旦宣言がされれば、以後は、その名前を呼び出せば、実行時には該当する内容の文字列のaddr lenがスタックに積まれることになります。 ユニコード文字列について: Mopsの内部的な文字コードはMacRoman/Shift_JISのようです(少なくともOS9.x上では)。Mops/Forthの文字列は文字を格納したバッファの位置を示すものでしかありませんから、ユニコードエンコーディングの文字列を用いるのには現状のままで何の障害もありません。ただし、コードを転換する機能(ワード)は、少なくともまだ、提供されていないようです。Mopsでは文字列オブジェクトを利用することも多いのですが、最良の方法は、ユニコード用のストリングクラスを書いて、OSが提供するAPIを用いてエンコードを変換する機構を追加することであると思われます。なお、iMopsでは、内部的にはデフォルトでUTF-8になっています。 関連項目: データスタック スタック効果コメント 文字および4文字タイプ 定数 文字列オブジェクト Stringクラスの基本メソッド トップページへ 目次へ
https://w.atwiki.jp/kojiro/pages/15.html
ASC 文字列内の全角の英数カナ文字を、半角文字に変換します。 CHAR 数値を ASCII または JIS コード番号と見なし、それに対応する文字を返します。 CLEAN 文字列から印刷できない文字を削除します。 CODE 文字列の先頭文字に対応する ASCII または JIS コードを返します。 CONCATENATE 複数の文字列を結合して 1 つの文字列にまとめます。 DOLLAR 数値を四捨五入し、ドル書式を設定した文字列に変換します。 EXACT 2 つの文字列が等しいかどうかをテストします。 FIND 指定した文字列を他の文字列の中で検索します。大文字と小文字は区別されます。 FIXED 数値を四捨五入し、書式設定した文字列に変換します。 JIS 文字列内の半角の英数カナ文字を、全角文字に変換します。 LEFT 文字列の先頭 (左端) から指定した数の文字を返します。 LEN 文字列に含まれる文字数を返します。 LOWER 文字列に含まれる英字をすべて小文字に変換します。 MID 文字列の指定した位置から指定した数の文字を返します。 PHONETIC 文字列からふりがなを抽出します。 PROPER 文字列に含まれる英単語の先頭文字だけを大文字に変換します。 REPLACE 文字列中の指定した数の文字を他の文字に置き換えます。 REPT 文字列を指定した回数だけ繰り返して表示します。 RIGHT 文字列の末尾 (右端) から指定した数の文字を返します。 SEARCH 指定した文字列を他の文字列の中で検索します。大文字と小文字は区別されません。 SUBSTITUTE 文字列中の指定した文字を他の文字に置き換えます。 T 引数を文字列に変換します。 TEXT 数値を書式設定した文字列に変換します。 TRIM 文字列から余分なスペースを削除します。 UPPER 文字列に含まれる英字をすべて大文字に変換します。 VALUE 文字列を数値に変換します。と謳っていますが、セルを参照させた場合と数式の中に直接文字列を入力した場合で結果が異なります。 YEN 数値を四捨五入し、円書式を設定した文字列に変換します。
https://w.atwiki.jp/hitoshop/pages/22.html
文字列関数 ここでは、使用頻度の高い文字列関数群の説明をします 文字列用の関数 strlen関数 機能と返り値 文字列の長さを返す.全角文字の長さ=2で、空文字=0です 引数 任意の文字列 ?php $a = "abcdefg"; print strlen($a); ? trim / ltrim / rtrim関数 機能と返り値 文字列からスペースを除いた文字列を返す.trimは、前後.ltrimは、前から.rtrimは、後ろから. 引数 第一引数に任意の文字列を指定.第二引数は省略可能だが、任意の文字列指定で、その文字を取り除く ?php $a = " wikiにて編集 "; //前後スペースを取り除く print trim($a); //「編集」文字を取り除く print trim($a, "編集"); ? strpos / strrpos関数 機能と返り値 strposは、引数の文字列内を検索し最初に現れる文字位置を返す.strtposは、逆に最後に現れる文字位置を返す.開始カウントは0からで、全角文字は2文字分としてカウント 引数 第一引数は検索される文字列.第二引数は、そこから見つけたい文字や文字列を指定 ?php $a = "hitoshop@ウィキ"; //先頭からpを探します print strpos($a, "ウ"); //後ろからpを探します print strrpos($a, "p"); ? substr関数 機能と返り値 文字列の中から一部分を抜粋 引数 第一引数に文字列を指定.第二引数には取り出し開始位置.第三引数には取り出す長さを指定.先頭の文字位置は0で全角文字の長さは2です ?php $a = "hitoshop@ウィキ"; //4文字目から3文字分抜粋 print substr($a, 3, 3); //先頭から7文字抜粋 print substr($a, 0, 7); //8文字目から後ろすべて抜粋 print substr($a, 8); ? strchr関数とstrrchr関数 機能と返り値 strchrは、文字列内を検索し、指定した文字が最初に現れる位置以降の文字列を返す.strrchrは、その逆で最後に現れた位置以降の文字列を返す 引数 第一引数に文字列を指定.第二引数に検索する文字を指定 ?php $a = "2010/12/31"; //最初の【 / 】以降の文字列を抜粋 print strchr($a, "/"); //最後の【 / 】以降の文字列を抜粋 print strrchr($a, "/"); ? ctrcmp関数 機能と返り値 2つの文字列を比較し、同じかどうかを返す 引数 比較対照の2つの文字列を第一引数 / 第二引数に指定 ?php $a = "abcdefg"; $b = "hijklnm"; //2つが同じなら0を返し、違う場合には引数の大小に応じてtrue(1),false(-1)を返す switch (strcmp($a, $b)) { case 0 print "2つの文字列は等しい"; break; case 1 print "変数$aの方が大きい"; break; case -1 print "変数$bの方が大きい"; break; } ? strtr / str_replace関数 機能と返り値 指定した文字にマッチする部分を別の文字に置換する 引数 strtrの引数は「元の文字列、置換前文字、置換後文字」.str_replaceの引数は、「置換前文字、置換後文字、元の文字列」 ?php $a = "123123456123"; //【 1 】を【 + 】に置換 print strtr($a, "1", "+"); print str_replace("1", "+", $a); ? substr_replace関数 機能と返り値 指定した位置から、指定した分を別の文字列に置換.先頭文字位置を0とし、全角文字の長さは2カウントされる 引数 4つの引数「元の文字列、置きかえる文字列、置換開始位置、置き換え長さ」 ?php $a = "123456789"; print substr_replace($a, "++++++", 2, 4); ? str_pad関数 機能と返り値 文字列全体が指定した長さになるよう、文字列の前後を指定した文字で埋める 引数 4つの引数で、「元の文字列、最終文字列の長さ、前後を埋める文字、文字列の埋め方」 ?php $a = "12345"; //第4引数には、 //STR_PAD_LEFT (左を指定文字で埋める) //STR_PAD_RIGHT (右を指定文字で埋める) //STR_PAD_BOTH (左右を指定文字で埋める) print str_pad($a, 8, "0", STR_PAD_LEFT); print str_pad($a, 10, "+", STR_PAD_BOTH); print str_pad($a, 8, "0", STR_PAD_RIGHT); ? strtoupper / strtolower関数 機能と返り値 strtoupperは、アルファベットの文字列を大文字に置換.strtolowerは小文字に置換 引数 任意の文字列 ?php $a = "HitoShOp14WiKi"; print strtoupper($a); print strtolower($a); ?