• ベストアンサー

プログラムによく出てくるstrの意味

プログラムによく出てくるstrの意味はなんですか? 数学でよくpやrを使いますがそれと同じようなものでしょうか? 例:char str[] = "COMPUTER";

質問者が選んだベストアンサー

  • ベストアンサー
  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.1

string:文字列

nuinul
質問者

お礼

納得できました。 ありがとうございます。

関連するQ&A

  • char *str; と char* str;

    char *str; と char* str; どっちも同じことを意味しているんですか?

  • char str[256]の256の意味は?

    よく入門者などにchar str[256]という記述があります。 この256という数字には何か特別な意味があるのですか? 勿論2の8乗から来ているのでしょうが。 charって1バイト=8ビット=256ですよね。 str[256]というのを良く見かけるので、最初strは最大256個しか確保できないと思っていました。 でも、実際は1000でも良いのですよね。 ということで、どうして256という数字を使うのですか? 意味ありげな数字を使われると、初心者は混乱するので100とか200とかの方が良いと思うのですが。 特別な理由があるのでしょうか?

  • 文字列strの中から文字cを探すプログラム(C言語)がわからない

    文字列strの中から文字cを探すプログラム(C言語)がわからない 柴田望洋さんの「[新版]明解C言語」という本の演習11-2なんですがどうしてもわかりません。間違いは無いと思うのにコンパイルすると警告を吐かれます。 僕が書いたプログラムを載せます。 /* 文字列strの中に、文字cが含まれていれば(複数ある場合は、最も先頭側とする)、 その文字へのポインタを返し、含まれていなければNULLを返す関数 char *str_chr(const char *str, int c) {} を作成せよ。 */ #include<stdio.h> char *str_chr(const char *str, int c){ while(*str){ if(*str==c) return str; str++; }     return NULL; } int main(){ char *str; char c; scanf("%s",str); scanf(" %c",c);     printf("%d",str_chr(str,c)); return 0; } コンパイラは「関数str_chrのif分の中のreturn strの型変換に問題がある」と言っているんです。 型変換はしるつもりは無いのにコンパイラはなぜそのように認識するのでしょうか。 またネット答えを探しましたがどうやらこのreturn strの部分はreturn (char*)strが正解のようです。意味がわかりません。strはポインタなのになぜまたわざわざchar型に変換しているのですか?といか(char*)の意味が根本的にわかりません。 質問ばかりですみません。初心者でポインタがどうにも理解できないんです。 誰か詳しい人教えてください。 お願いします。

  • プログラムの動作

    独学でプログラムの勉強をしようと、サイトや本を見ながら勉強しているのですが、ポインタの使用がいまいち理解できません。 下にあるプログラムの動作の流れを順を追って教えていただきたいです。 (細かくいいますと、ポインタの動きと関数の動きの点を重点的に教えていただきたいです。(特にfor文内) 『以下プログラム』 1: #include<stdio.h> 2: 3: void h(char **p){ 4:     (*p)++; 5: } 6: 7: int main(void){ 8: 9: int i; 10: char str[]="abcdefghij"; 11: char *p_str; 12: 13: p_str=str; 14: for(i=0;i<(sizeof(str)/sizeof(str[0]));i++){ 15: printf("[%s]\n",p_str); 16: h(&p_str); 17: } 18: 19: return(0); 20: } 出力結果 [abcdefghij] [bcdefghij] [cdefghij] [defghij] [efghij] [fghij] [ghij] [hij] [ij] [j] []

  • 再帰プログラム

    #include<stdio.h> int rstrlen(char*); int main(void) { char str[100]; printf("文字列を入力してください\n"); gets(str); printf("文字数は %d です\n",rstrlen(str)); return 0; } int rstrlen(char *p) { if(*p){ p++; return 1+rstrlen(p); } else return 0; } 文字数を計算するプログラムです。 if(*p)の*pとはNULLを表しているのですか?

  • 結果が不安定なプログラム

    配列に入れられた文字列を、別の配列に逆にして入れ、表示するというプログラムを作っています。 #include<stdio.h> #include<string.h> #include<stdlib.h> void main() {   char str1[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ", str2[] = "";   int i = 0, len = strlen(str1);   char *p1 = str1 + len - 1, *p2 = str2;   while(*(p1 - i) != str1[0] - 1) *(p2 + i) = *(p1 - i++);   printf("str1 = %s\n",p1 = str1);   printf("str2 = %s\n",p2); } 実行結果: str1 = ABCDEFGHIJKLMNOPQRSTUVWXYZ str2 = ZYXWVUTSRQPONMLKJIHGFEDCBA と出るのですが、この文字列を例えば"TANGOHYOJI"とかに変えてみると、実行は出来るんですがprintfの部分が表示されません。 また表示できても、文字が違う文字になって表示されたりします。 あと、この場合に使われている<stdlib.h>はどういった役割を果たしているのでしょうか?これがないとこのプログラムは動かなかったのですが・・。 どうかよろしくお願いします。

  • 再帰プログラム

    strに格納されている文字数を数えるプログラムです。 #include<stdio.h> int rstrlen(char *); int main(void) { char str[] = {"abcdefghijk"}; printf("文字数:%d\n",rstrlen(str)); return 0; } int rstrlen(char *p) { if(*p) { p++; printf(p); return 1 + rstrlen (p); } else return 0; } return 1 + rstrlen (p);の部分で再帰をし1をプラスすることにより文字数をカウントしmainのprintfで文字数を表示しているのですがカウントしている値はどこに格納していてどのようにmainに返しているのかが分かりませんでした。教えてください。

  • std::stringクラスのc_str()で取得した文字列をいじることは可能ですか?

    c++で、以下のようなコードは問題ないでしょうか? // chrの中身の小文字を大文字にする void func(char* chr); std::string str("aaa"); const char* str_p = std.c_str(); func((char*)str_p); ←これは大丈夫ですか? //このあとstrに対して文字列を追加したりいろいろ処理する。 このようにc_strで取得したconst char*をconstをはずして 強引にいじくることは問題ないでしょうか?

  • ポインタ スペースを数えるプログラム

    入力した文章のスペースを数えるプログラムを作ってみました. ポインタをまだしっかり理解していないのですが,ポインタを使用 する場合,以下のようなプログラムで正しいですか? (オーバーフローなどについては対処していません.) #include<stdio.h> int main(void) { char str[80],*p; int i,count=0; gets(str); p=str; for(i=0;i<80;i++) { if(p[i]==' ') { count++; } } printf("%d",count); return 0; }

  • プログラム

    文字列str内のすべての英字を大文字に変換する関数および小文字に変換する関数void str_toupper(char *str)    void str_tolower(char *str) を作成したいのですが、検討つかなくて困っています、、 表示例としては、 文字列を入力:asDFgH 大文字:ASDFGH 小文字:asdfgh

専門家に質問してみよう