- 締切済み
文字列の扱い方
初歩的な質問ですみません… str文字列からcという文字を見つけたら添字を返すという関数を作ったのですが、 iにこの関数を代入して、if文の制御式にiを使って比較するまでは正常なのですが、 真文にiを使うと何故か偽文(という言い方でいいのでしょうか…この場合("そんな値はありません。"というところです)が実行されてしまいます。 よろしければご教授お願い致します。 #include <stdio.h> int str_char(const char str[],int c) { int len = strlen(str); int i; for (i = 0;i < len;i++) { if (str[i] == c) return i; } return -1; } int main() { char str[64] = "Fucking Brutal Death Metal"; int ch,i; printf("どの文字を調べますか?"); scanf("%c",&ch); i = str_char(str,ch); if (i >= 0) printf("その文字は%d番目にあります。",str_char(str,ch) + 1); //何故かiだと動かない else printf("そんな値はありません。"); return 0; }
- みんなの回答 (8)
- 専門家の回答
みんなの回答
- kmee
- ベストアンサー率55% (1857/3366)
回答No.8
- 麻野 なぎ(@asano_nagi)
- ベストアンサー率35% (42/120)
回答No.7
- SONICLA
- ベストアンサー率100% (2/2)
回答No.6
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.5
- Picosoft
- ベストアンサー率70% (274/391)
回答No.4
- 麻野 なぎ(@asano_nagi)
- ベストアンサー率35% (42/120)
回答No.3
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.2
- hashioogi
- ベストアンサー率25% (102/404)
回答No.1
お礼
int ch;でも、ch = getcharにしたら正常に実行できました。 ありがとうございます。