PDA

View Full Version : سوال: چرا تابع Lower که نوشتم حروف دیگه هم چاپ می کنه ؟



snbb000
شنبه 19 مرداد 1392, 02:24 صبح
سلام .
دوستان کد زیر مشکلش چیه ؟ میشه برام توضیح بدید که چی میشه ؟ وقتی اجرا میکنم مثلا وقتی مینویسم salam تو خروجی SALAM@ چاپ میشه چرا ؟ و یا برخی عبارت که می نویسم مثل ؟ یک سری علائم هارو چاپ میکنه . مسکل چیه ؟
ممنون

#include <stdio.h>
#include <conio.h>
void lower(char [],int);
int main()
{

char ch[80];
int i;
for(i=0 ; i < 80 ; i++)
{
ch[i] = getchar();
if(ch[i] == '\n')
{
break ;
}
}

lower(ch,i-1);

}

void lower(char ch[] , int i)
{
char myCh[i];
int k ;
for(k=0 ; k <= i ; k++)
{
myCh[k]=ch[k] ;
}

for(k = 0 ; k <= i ; k++)
{
if(myCh[k] >= 'a' && myCh[k] <= 'z')
{
myCh[k] -= 32 ;
}

}



printf("%s",myCh);

}

مصطفی ساتکی
شنبه 19 مرداد 1392, 07:06 صبح
به این صورت اصلاحش کنید.

char str[200];
printf( "enter string:");
gets(str);

for (int i=0;i < strlen(str);i++)
if (str[i] >='A' && str[i] <='Z')
str[i] +=32;

printf("result:%s",str);