PDA

View Full Version : چاپ کلمه اول یک جمله



ramin149
یک شنبه 29 خرداد 1390, 21:06 عصر
چه شکلی کلمه اول یک رشته را می شه چاپ گرد
البته من تا یه حدیش را نوشتم ولی مشکل داره اگر میشه راهنماییم کنید و مشکلش را برام حل کنید

void readword(char[],int size);
int main()
{
char a[100];
printf("plz enter your statmant:\n");
scanf("%c",a);
//printf("the first word in your statmant is\n %s",readword(a,100));
readword(a,100);
return 0;
}
void readword(char *a,int size)
{
char *b;
b = strtok(a,"");
while(b!= NULL)
{
printf("%s\n",b);
b='\0';
}
int x;
scanf("%d",x);
}

mehdi.mousavi
یک شنبه 29 خرداد 1390, 23:09 عصر
سلام.
می تونید بدین شکل عمل کنید:


char szInput[100] = {NULL};
printf("Please enter your statmant (max-length: 100 character):\r\n");
scanf("%s", szInput);

int length = strlen(szInput);
for(int i = 0; i < length && szInput[i] != 32; i++)
printf("%c", szInput[i]);

یا با استفاده از Pointer ها:

char szInput[100] = {NULL};
printf("Please enter your statmant (max-length: 100 character):\r\n");
scanf("%s", szInput);

char *p = szInput;
while(*p != NULL && *p != 32)
printf("%c", *p++);


موفق باشید.

developing
دوشنبه 30 خرداد 1390, 13:01 عصر
با سلام

ضمن تشکر از آقای موسوی باید بگم یک نکته رو یادتون رفت اون هم اینکه اگه ابتدای جمله با کاراکترهای دیگه ای وارد شده باشه چی؟(مثلا . یا > یا ؟ یا % و ...)

در ضمن اگه منظور آقا رامین چاپ اولین کلمه از جمله باشه که اصلا کد یه جور دیگه می شه.(نه چاپ از ابتدای کلمات به بعد یا مثل کد آقای موسوی که فاصله های موجود در جمله رو حذف می کنه و بقیه جمله رو می نویسه.)

یه چیزی مثل کد زیر که در هنگام رسیدن به اولین کاراکتر شروع به نوشتن می کنه و در زمانی که به اولین غیر کاراکتر رسید از حلقه خارج می شه.
char string[100];
scanf("%s", string);

int length = strlen(string);
int c = 0;

for(int i = 0; i < length; i++){
if(string[i] >= 'a' && string[i] >= 'z' || string[i] >= 'A' && string[i] >= 'Z'){
c++;
printf("%c", string[i]);
}
else
if(c > 0)
break;
else
c = 0;
}