🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

1910閲覧

strcmpの使い方について

._._._iiii

総合スコア1

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2021/01/16 02:28

編集2021/01/16 02:48

前提・実現したいプログラミングについて

下のプログラムで,fromがOsakaの人だけのグラフも作りたいのですがstrcmpの使い方がいまいち分かっていないのですが、これは間違えていますよね
どのようにすれば良いのでしょうか?

#プログラム

#include <stdio.h>#include <string.h>#define I_MAX 8

typedef struct str_Persons{
char *namae;
char *from;
int birthyear;
} Persons;

int main(void){

int i, j;
int k;

int i_max = 8;
strcmp(char *from,char Osaka);
Persons x[] = {
{"watanabe","Osaka ", 1982},
{"asahi","Tokyo ", 1980},
{"miki","Osaka ", 1987},
{"minagawa","Kyoto ", 1990},
{"iwanami","Kanagawa ", 1992},
{"abe","Okinawa ", 1991},
{"inoue","Tokyo ", 1994},
{"sato","Mie ", 1993},
};

Persons x_buff;

for(i = 0; i <i_max - 1; i++){
for(j = i + 1; j <i_max; j++){
if(x[i].birthyear <x[j].birthyear){
x_buff = x[i];
x[i] = x[j];
x[j] = x_buff;
}
}
}

printf("----------------------------------------------------\n");
printf("Namae From Birthyear\n");
printf("----------------------------------------------------\n");

for(k = 0; k <i_max; k++){
printf("%s", x[k].namae);
printf("%s", x[k].from);
printf("%2d", x[k].birthyear);
printf("\n");
}

printf("----------------------------------------------------\n");

}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

._._._iiii

2021/01/16 02:48

編集しました 丸投げで申し訳ないです
thkana

2021/01/16 02:57

いまいち、という言葉は「いま一歩」の略で、「あと少し」と同義だと思っているのですが、質問のプログラムを見るとあと少しstrcmpがどうこうというレベルでなく、関数って何?という段階のように思います。 何がわかっていないのか、ちゃんと確認してみてはいかがでしょうか。 それと、C言語以外にも、このサイトのルール、使い方を一通り確認してください。 とりあえずこの辺。https://teratail.com/help/question-tips
dodox86

2021/01/16 03:14

> strcmpの使い方がいまいち分かっていないのですが、これは間違えていますよね 一般的に、道具の使い方が分からないときはそれを理解する為に練習をします。 [strcmp] https://linuxjm.osdn.jp/html/LDP_man-pages/man3/strcmp.3.html int result; result = strcmp("Osaka", "Osaka"); result = strcmp("Osaka", "Tokyo"); /* result に何が入るのか? 値は何を意味するのか? */
BeatStar

2021/01/16 09:24

基礎自体が出来ていないですね。 『C言語 関数』とかで調べてください。 それが分かっていないと使えるわけないです。
guest

回答1

0

ベストアンサー

C

1 ... 2 printf("----------------------------------------------------\n"); 3 printf("Namae From Birthyear\n"); 4 printf("----------------------------------------------------\n"); 5 6 for(k = 0; k <i_max; k++){ 7 if ( strcmp(x[k].from, "Osaka ") == 0 ) { // メンバ:from が "Osaka " だけプリント 8 printf("%s ", x[k].namae); 9 printf("%s ", x[k].from); 10 printf("%2d", x[k].birthyear); 11 printf("\n"); 12 } 13 } 14 15 printf("----------------------------------------------------\n"); 16 17}

投稿2021/01/16 06:02

episteme

総合スコア16612

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問