這為啥錯了呢?
本題要求撰寫程式,從給定字串中查找某指定的字符。
輸入格式:
輸入的第一行是一個待查找的字符。第二行是一個以回車結束的非空字串(不超過80個字符)。
輸出格式:
如果找到,在一行內按照格式“index = 下標”輸出該字符在字串中所對應的最大下標(下標從0開始);否則輸出"Not Found"。
輸入樣例1:
m
programming
輸出樣例1:
index = 7
輸入樣例2:
a
1234
輸出樣例2:
Not Found
#include "stdio.h"
#include "string.h"
int main()
{
char c,a[100];
int flag = 100,i;
scanf("%c\n",&c);
gets(a); //scanf("%s",&a); 為啥換成%s就錯了呢?錯了一個測驗點
for( i = 0 ; i < strlen(a) ; i++ )
if( c == a[i] )
flag = i;
if( flag == 100 )
printf("Not Found");
else
printf("index = %d",flag);
return 0;
}
uj5u.com熱心網友回復:
我這里并沒有復現到樓主注釋里面提到的情況,具體是在怎樣操作才出現問題的uj5u.com熱心網友回復:
scanf("%c\n",&c); 把這里面的\n去掉。gets(a); //scanf("%s",&a); 為啥換成%s就錯了呢?錯了一個測驗點 用scanf("%s",&a)時,不能加&,scanf("%s",a)
uj5u.com熱心網友回復:
我按照你說的試了下,結果還是有個測驗點錯了
uj5u.com熱心網友回復:
供參考:#include "stdio.h"
#include "string.h"
int main()
{
char s[1],c,a[81];
int flag = -1,i;
scanf("%s",s); //scanf("%c\n",&c);
c=s[0];
//gets(a);
scanf("%s",a);//scanf("%s",&a); 為啥換成%s就錯了呢?錯了一個測驗點
for( i = 0 ; i < strlen(a) ; i++ )
if( c == a[i] )
flag = i;
if( flag == -1 )
printf("Not Found");
else
printf("index = %d",flag);
return 0;
uj5u.com熱心網友回復:
我試了你的代碼,還是有個測驗點沒過
uj5u.com熱心網友回復:
只在編譯器上敲,是沒問題的,但測驗系統有個測驗點沒通過
uj5u.com熱心網友回復:
題目說的非空字串,可沒說字串內不含空格啊。uj5u.com熱心網友回復:
然后呢
???
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/252776.html
標籤:C語言
上一篇:幸運彩票
