C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: ポインタの扱いについて


(過去ログ 55 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■31107 / inTopicNo.1)  ポインタの扱いについて
  
□投稿者/ 凪 (13回)-(2009/01/15(Thu) 13:57:46)

分類:[C/C++] 

WinXP
VC++2003

宜しくお願いします。
VC++を勉強中です。

ポインタの扱いについて質問させてください。
char型のポインタ変数が指し示す先のアドレスにある、文字数を数える方法はあるのでしょうか?

例:
char* a = "abcdefghijklmn";

strlen(a); ←これだと違うっぽい(たぶん、文字列ではなくポイントしてるアドレスの長さを取ってるのかな?)

期待する結果:14

基本的な事かと思いますが、調べてもなかなか理解できるサイトが見つかりません。
以上、宜しくお願いします。
引用返信 編集キー/
■31108 / inTopicNo.2)  Re[1]: ポインタの扱いについて
□投稿者/ επιστημη (1524回)-(2009/01/15(Thu) 14:07:40)
επιστημη さんの Web サイト
2009/01/15(Thu) 14:20:43 編集(投稿者)
> 期待する結果:14

↓期待する結果が得られますよ。

#include <cstring>
#include <iostream>

using namespace std;

int main() {
  char* a = "abcdefghijklmn";
  int n = strlen(a);
  cout << n << endl;
}

# 訊くよりやってみたほうが512倍早い(当社比)。
# てか、やってから訊けばいいのに。

...ところで No30898 , No30956 はどうなったん?

引用返信 編集キー/
■31109 / inTopicNo.3)  Re[1]: ポインタの扱いについて
□投稿者/ 魔界の仮面弁士 (961回)-(2009/01/15(Thu) 14:09:14)
2009/01/15(Thu) 14:15:20 編集(投稿者)

No31107 (凪 さん) に返信
> char型のポインタ変数が指し示す先のアドレスにある、文字数を数える方法はあるのでしょうか?
> char* a = "abcdefghijklmn";

"abcdefghijklmn\0" であれば、
http://msdn.microsoft.com/ja-jp/library/cc410906.aspx
などが使えますが、それでは駄目でしょうか。

---
しまった。末尾 \0 は勝手に付くので、"abcdefghijklmn" で良いのか…。
引用返信 編集キー/
■31111 / inTopicNo.4)  Re[2]: ポインタの扱いについて
□投稿者/ 凪 (14回)-(2009/01/15(Thu) 14:22:15)
No31108 (επιστημη さん) に返信

ご回答ありがとうございます。
またお世話になります。

すいません、勉強しながらゴチャゴチャツギハギになったプログラムでやってみたところ上手く回らなかったもので…
質問の内容通りの単純なプログラムをまわしてみたらちゃんと出ました(笑)

他のところを検証してみます。
有難うございました。
引用返信 編集キー/
■31112 / inTopicNo.5)  Re[2]: ポインタの扱いについて
□投稿者/ 凪 (15回)-(2009/01/15(Thu) 14:23:27)
No31109 (魔界の仮面弁士 さん) に返信

はじめまして。
ご回答有難うございます。

lstrlenというのがあるんですね…。
さっそく試してみます。

有難うございました。
解決済み
引用返信 編集キー/
■31115 / inTopicNo.6)  Re[2]: ポインタの扱いについて
□投稿者/ 凪 (16回)-(2009/01/15(Thu) 14:31:40)
No31108 (επιστημη さん) に返信

No30898 , No30956について返信してませんでした ^^;
すいません、せっかく教えていただいたのにm(__)m

strstrについてはご教授いただいたやり方で上手くまわりました!
\0の存在を無駄に意識しすぎたんですかね…

fwriteについても解決というか、わかってきた気がします。(「理解」と「わかる」は違いますが^^;)
結局、戻り値を利用しない限りは気にしなくていいという事ですね。
色々数字を入れ替えたせいでややこしくなってた気がします。

まだなんとなくC++というものを理解できてないので、変に考え込んでドツボにはまったり逆に浅くてドツボにはまったり…
まぁ、それがプログラムの面白みでもあるのかな…
解決済み
引用返信 編集キー/
■31116 / inTopicNo.7)  Re[3]: ポインタの扱いについて
□投稿者/ .SHO (531回)-(2009/01/15(Thu) 14:34:21)
No31115 (凪 さん) に返信

> 結局、戻り値を利用しない限りは気にしなくていいという事ですね。

戻り値、チェックした方がいいですよ。。。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -