ورود

View Full Version : قرار دادن متغییر در دستورات رشته ای



ramin149
شنبه 20 آذر 1389, 18:15 عصر
من یه متغییر دارم به نام int x =15
می خوام این متغییر به صورت زیر جایگزین بشه


printf("%xd",f);

البته متغیر x در حال تغییر

tdkhakpur
دوشنبه 22 آذر 1389, 01:22 صبح
من یه متغییر دارم به نام int x =15
می خوام این متغییر به صورت زیر جایگزین بشه


printf("%xd",f);

البته متغیر x در حال تغییر
نخیر همچین تفسیری از کد برای سی در نظر گرفته نشده به نظرم کد زیر رو خودتان هم میدانید و فرقی با خواسته شما ندارد..


printf("%d%d",x, f);

ramin149
دوشنبه 22 آذر 1389, 09:05 صبح
فکر کنم شما منظور من رو نگرفتید
من می خوام یه کلمه بگیرم و به اندازه 3 برابر اندازه کلمه فاصله بدم
مثلا من کلمه ramin را می گیرم و تعداد کاراکتر را مشمارم می شه 5 و در عدد 3 ضرب می کنم می شه 15
حالا ما یه دستور برای چاپ داشتیم به این صورت


printf("%15c ,ramin")

حالا من می خوام جای 15 متغییر بشنه باید چه کار کنم ؟

tdkhakpur
سه شنبه 23 آذر 1389, 12:20 عصر
فکر کنم شما منظور من رو نگرفتید
من می خوام یه کلمه بگیرم و به اندازه 3 برابر اندازه کلمه فاصله بدم
مثلا من کلمه ramin را می گیرم و تعداد کاراکتر را مشمارم می شه 5 و در عدد 3 ضرب می کنم می شه 15
حالا ما یه دستور برای چاپ داشتیم به این صورت


printf("%15c ,ramin")

حالا من می خوام جای 15 متغییر بشنه باید چه کار کنم ؟
تا اونجایی که من اطلاع دارم همچین آبشنی در داخل printf برای این کار وجود نداره ولی میتوانید یک تابع ساخته شده ای به شکلی زیر رو طراحی کنید.


void printf(int x, int f)
{
for( int i=0; i<x, i++)
printf(" ");
printf("%d", f);
}

یا اینکه میتوانید کدتان رو بصورت زیر بنویسید.


int ramin=17;
int x=6;
char *str="% ";
char tmp[10]={0};
itoa(x, tmp, 10);
memcpy(&str[1], tmp, strlen(tmp));
strcpy(&str[1+strlen(tmp)], "d");
printf(str, ramin);
getch();

mehdi.mousavi
سه شنبه 23 آذر 1389, 12:41 عصر
من یه متغییر دارم به نام int x =15 می خوام این متغییر به صورت زیر جایگزین بشه


printf("%xd",f);
البته متغیر x در حال تغییر

سلام.
می تونید به این شکل عمل کنید:


printf("%*d", x, f);موفق باشید.