- ベストアンサー
C言語での文字列より値を抜き出す
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
多分、strncpyを使うのでしょうね。 const char *src="ABCDE"; char buff[10]; strncpy(buff, src+1, 3); で、buffに"BCD"が切り出されます
その他の回答 (1)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
C++でも#1がそのまま使えますが basic_stringテンプレートクラス<string>に substr(pos, size)というメソッドがあります C++.NETにも Stringクラスに 同様のメソッドがあります
お礼
.NETでも同様に使えるのですね。 今回は使いませんが、覚えておこうと思います。 ありがとうございました。
関連するQ&A
- c言語の文字列出力
プログラミング超初心者です サイトで文字列の出力について調べていたところ c言語は変数に文字列を代入することができないのでstrcpy関数を使い以下のようにするとあります char s[5]; strcpy(s, "ABCDE"); printf("%s\n", s); ところが他のサイトでは以下のように説明しています char s[5] = "ABCDE"; printf("%s\n", s); 明らかに後者の方が簡単で良いように見えるのですが違いはなんですか? あと、文字列の配列の指定?の[5]の部分なのですが 数字を記載しているところがほとんどですが省略しているところも有ります どんな文字列が入るかわからない場合もありますがここは省略しない方が良いのですか? よろしくお願いします
- 締切済み
- C・C++・C#
- C言語で取得した文字列を、C++の文字列として取り扱いたいです。
C言語で取得した文字列を、C++の文字列として取り扱いたいです。 皆さんこんにちは。 C言語で取得したchar型で定義された文字列を、 C++の「std::string」に渡したいと思っております。 どうすればかなうでしょうか? 具体的には次のような内容です。 ■C言語側 ---- char key1 = "deperture"; ---- ■C++側で「key1 = key2」としたいです。 ---- std::string key2 = key1; ---- C言語側で記述されている「key1」の値(deperture)を、 C++ソース内の「key2」に渡したいと思っています。 こうゆう場合、どんな方法をとれば適切でしょうか。 C言語側でのchar型の文字列の値を、 C++側の「std::string」型として C++のソースへ渡す方法が分からないです。 アドバイスいただけるとありがたいです。 簡単な例を頂けると更に大変ありがたいです。 以上どうぞ宜しくお願い致します。
- ベストアンサー
- C・C++・C#
- 2文字以上の重なっている文字列を抜き出す方法
例えば、次のようなテーブルがあって、mojiretuカラムにおいて 他の行の文字列と2文字以上の重なっている部分の文字列を取得したいのです。 ただし条件があって下の場合だと、「ab」は1、2行目で重なっているのですが、 2行目の「ab」はそれで全ての(終結している)文字列なのでマッチさせないようにしたいです。 なので、このテーブルから取得したい文字列は 「cd」「bcd」「abc」「bc」「de」になります。できれば重なっている回数も含めて取得したい (「cd」2回、「bcd」1回、「abc」1回、「bc」1回、「de」1回、) のですが、どのようなSQLを記述すれば良いのでしょうか? [テーブル] mojiretuカラム abcd ab cde abcde xy
- ベストアンサー
- MySQL
- C言語で文字列操作を忘れてしまいました。
長い間スクリプト言語ばかりやっておりまして、C言語に戻ると、文字列を返す 関数を作ろうとしましたが、お恥ずかしいながらできませんでした。 ローカル変数の値を戻り値に使おうとして、それがwarningになったり、動作が不安定になったりして、文字列を返す仕組みを完全に忘れてしまっていました。 例えば、"test"と言う文字列を返す関数を書きたいのですが、メモリ操作も考えた サンプルをだれか教えて欲しいです。 int main(void) { printf("%s", 「関数名」); }
- ベストアンサー
- C・C++・C#
- 【C言語】文字列による処理の分岐について
いつも丁寧な解説拝見しております。 C言語について質問させて頂きます。 シリアル通信によって受信した1バイトの文字列があるとします。 この文字列のパターンよって処理の分岐をさせたい場合、コードはどのように書けば良いのでしょうか。 より具体的に申しますと、 →文字列パターン1の場合、関数1を呼び出す。 →文字列パターン2の場合、関数2を呼び出す。 →文字列パターン3の場合、関数3を呼び出す。・・・・・・ と、100パターンほどの文字列があり、それぞれにおいて異なる関数を呼び出したいと考えております。私の理解は以下に示す通りなのですが、どうも正しい処理が分らないでいます。 ・受信した文字列がどのパターンなのかを判断するために、strcmp関数で比較を行う。 ・多分岐なので、switch case文かelse if文を用いる。 この場合、条件式の中でstrcmp関数による比較を行えば良いのでしょうか。簡単にコードを示して頂ければ幸いです。C言語初心者なので理解に間違いがあるかもしれませんが、どうぞよろしくお願い致します。
- ベストアンサー
- 情報工学
- 文字列の切り出し
一応確認はしましたが、過去に似たような質問があったらすみませんが どうか教えて下さい。 今までOracleでコーディングしたことはありますが、postgresは初心者です。 文字列を右から切り出す関数はないでしょうか? 例えば、文字列「TEST」の末尾2文字を取りたいとき OracleのSQLで言えば substr( 'TEST', -2 ) ⇒ 'ST' が取れますが postgresではこういう風に使えないようです。 substr 以外の関数や、代わりにこうやる方法があるよと言ったことを教えて下さい。 お願い致します。
- 締切済み
- PostgreSQL
- 全角半角混在の文字列から○文字まで取得する方法
はじめまして! MySQLから取得した文字列をPHPで例えば10文字まで表示したいのですが、良いやり方ありますでしょうか? 文字列には全角半角が混在しているので substr関数だと、うまく取得できない場合があります。よろしくお願いいたします。
- ベストアンサー
- PHP
- c言語の文字、また文字列について
c言語の文字、つまり「'(シングルクオーテーション)」で囲んだ単数の半角文字は、メモリに保存されているのでしょうか。 また、アドレスは有るのでしょうか。 c言語の文字列、つまり「"(ダブルクオーテーション)」で囲んだ複数の文字は、メモリに保存されているのでしょうか。 また、アドレスは有るのでしょうか。
- 締切済み
- C・C++・C#
- 文字列の反転
こんばんわ。C言語初学者の者です。早速質問させてください。 (1) char a; aの中身には、アルファベット小文字の文字列が5個並んでいるとします。 その文字列を前後反転させるにはどうすればいいでしょうか? 例えばabcdeと並んでいる文字列をedcbaとする場合です。(キーボードからabcdeと打ち込んだとき、aにedcbaと格納させたいのです) (2) char a; char b; 中身は文字列で、二つを合体させたい場合どうすればいいのでしょうか? 例えば aにはth 、bにはatと格納されている場合thatと繋げたいのです。 よろしくお願いします。
- ベストアンサー
- C・C++・C#
- C言語で文字列ではなく、文字の
C言語で整数型の時は例えば int d[3][5]; などとおいて二次元配列を作り、文字列のときは char a[3][4]="abc,bcd,cde";(←ちょっとこの宣言も合っている自信はないが) という様に置きますよね。こういうのを文字でも利用して、 1 2 3 4 5....... A s t u v w x y.... B i u i k i k u.... C j j j j o o o.... :.................. :................. :................ という様な表を文字の2次元配列を使って printf("%c",c[i][I]); のように表したいのですが、int d[i][I]のように 文字を二次元配列を作ることは出来るんでしょうか? どなたか知っている方がいたら教えてください。
- ベストアンサー
- その他(インターネット・Webサービス)
お礼
早速試してみます。 ありがとうございました。