現在、
コンマで区切られた単語の文字列を入力した後、一つ単語を入力して入力した文字列の中にあったらその単語の一文字目のアルファベットとそのアルファベットの中で何番目かを出力する,もし単語が文字列の中になければNOT FOUNDと出力するという問題に挑戦しています。
例えば
hello,my,new,classmate,class,heep,help
と入力してその後、
hello
と入力して、もしhello,my,new,classmate,class,heep,helpの文字列内にあったら
最初にHと出力
そしてその後、helloは、最初の文字はhなので、文字列内の最初の文字がhの単語の中で辞書順で考えて何番目か確認してその数字を出力
helloは最初の文字がhの単語の中で辞書順に考えるとheep,hello,helpと2番目なので
Hと出力した後、続けて2と出力する
入力例
hello,my,new,classmate,class,heep,help
hello
出力例
H 2
文字列を入力して「hello」と入力した後、Hと出力されるところまではかけたのですが、
上記の出力例のようなコードが上手く書けません。
他の単語を入力しても全てNOT FOUNDしか出力されません。
コードが完成したわけではないですが、このコードをどう直せばいいのかご教示いただけると幸いです。```
C
1#include <stdio.h> 2#include <string.h> 3#include <ctype.h> 4void demo(const char* str1, const char* str2) 5{ 6 char intial; 7 if (strcmp(str1, str2) == 0){ 8 intial=str1[0]; 9 putchar(toupper(intial)); 10 printf("\n"); 11 } 12 else 13 printf("NOT FOUND\n"); 14 15} 16 17int main(void) { 18 char str[1000],strn[1000]; 19 char *ptr; 20 21 scanf("%s",str);// カンマを区切りに文字列を分割 22 23 ptr = strtok(str, ","); 24 while(scanf("%s",strn)!=EOF){ 25 demo(strn,ptr); 26 } 27 28 return 0; 29}
回答2件
あなたの回答
tips
プレビュー