我剛剛開始用C語言編程,並且正在編寫密碼/解密程序。用戶被要求鍵入一個存儲爲char *的短語。問題是程序僅存儲字符串的第一個單詞,然後忽略它後面的所有內容。下面是獲取字符串代碼的一部分,然後對其進行分析String只記錄第一個字
int maincalc(int k) //The Calculation Function for Cyphering
{
char *s;
s=(char*) malloc(sizeof(100));
printf("Please enter the phrase that you would like to code: ");
fscanf(stdin,"%s %99[^\n]", s);
int i=0;
int n=strlen(s);
while(i<n)
{
if(s[i]>=65&&s[i]<=90) //For Uppercase letters
{
int u=s[i];
int c=uppercalc(u,k);
printf("%c",c);
}
else if(s[i]>=97&&s[i]<=122) //For Lowercase letters
{
int u=s[i];
int c=lowercalc(u,k);
printf("%c",c);
}
else
printf("%c",s[i]); //For non letters
i++;
}
free(s);
printf("\n");
return 0;
}
只需要知道如何做才能讓程序確認,不僅整個字符串的第一個字的存在。謝謝
+1因爲沒有考慮'gets()' – axiom 2013-03-02 13:41:09
我太新了,不能靠近gets()我不希望我的電腦爆炸。 – shea 2013-03-02 14:02:32