PDA

View Full Version : مبتدی: این کد مشکلش چیه ؟



vb8334
جمعه 01 مرداد 1389, 16:20 عصر
با سلام به تمامی دوستان

دوستان من وقتی می خوا م یه رشته بگیرم نمی تونم این کد چه اشکالی داره


#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main(int argc, char *argv[])
{
char a[3];
printf("Enter Your Name :");
scanf("%c",&a);
if (a=='spr')
printf("Result : 93");
if (a=='atu')
printf("Result : 81");
getch();
return 0;
{


ممنون

siso2010
جمعه 01 مرداد 1389, 17:47 عصر
در كار با رشته ها (مجموعه اي از تك كاراكتر ها)
به چند نكته توجه كنيد:
1.اگر براي گرفتن رشته از scanf استفاده مي كنيد بايد يك جاي خالي اضافي بيشتر از طول رشته در نظر بگيريد.
زيرا آخر رشته كاراكتر "0/" به عنوان علامت پايان رشته به آن اضافه مي شود.
2.براي گرفتن رشته در scanf به جاي استفاده از "c%" از "s%" استفاده كنيد.(نشان دهنده ي رشته بودن)
مثلا اگر مي خواهيد رشته اي به طول 20 را از كاربر بگيريد :



char str[21];//len(str)=20
scanf("%s",&str);//for input string

3.براي مقايسه ي دو رشته بايد از تابع strcmp(s1,s2);//#include string.h استفاده كرد.كه در فايل string.h قرار دارد.
كاركرد اين تابع اين گونه است،كه اگر به ترتيب s1<s2,s1=s2,s1>s2 باشد.به ترتيب مقادير 1/0/1-/ را برگردانده مي شود كه ميتوان با مقايسه ي آن از وضعيت s1,s2 نسبت به هم آگاهي پيدا كرد.
اينم برنامتون البته با اعمال تغييرات لازم.


#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main(int argc, char *argv[])
{
char a[4];
printf("Enter Your Name :");
scanf("%s",&a);
if (strcmp(a,"spr")==0)
printf("Result : 93");
if (strcmp(a,"atu")==0)
printf("Result : 81");
getch();
return 0;
}

اگر بازم سوالي بود در خدمتم!

hamedkh16522
یک شنبه 03 مرداد 1389, 19:47 عصر
در شرط اگه برابر باشد صفر برميگردانيد دقت داشته باشيد اگه بخواهيد شرط در صورت مساوي بودن اجرا بشه به اين صورت هم نوشته ميشه
if (!strcmp(a,"spr"))
نتيجه اين شرط اگر مساوي باشه صفر برميگرداند كه صفر برميگرداند و نقيض آن 1 ميشود و مياد داخل شرط اگه اينو هم ديدي اشتباه نكنيد