انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: مشکل با رشته ها در زبان C (حل شد)  (دفعات بازدید: 2706 بار)

0 کاربر و 3 مهمان درحال مشاهده موضوع.

آفلاین حسین تابش

  • Jr. Member
  • *
  • ارسال: 46
  • جنسیت : پسر
مشکل با رشته ها در زبان C (حل شد)
« : 12 تیر 1388، 10:02 ب‌ظ »
با سلام خدمت دوستان،
من یه سوالی در رابطه با رشته ها در زبان C دارم.
فرض کنید من ۳ تا رشته دارم که ۲ تا از اون ها رشته های ثابت هستند و یکی از اون ها یک متغییر. به عنوان مثال:

char *string1 = "cp"
char *string2 = "/home/hosein"
یک رشته دیگر هم دارم ولی این رشته ثابت نیست، این رشته اسم یک فایل هستش و طول معینی نداره! یکی ممکنه تو یک بار اجرای برنامه باشه "TEST2" و در یک اجرای دیگه باشه "AAAAAA"! حالا با این فرض من چه جوری می توانم این ۳ تا رشته رو برای اجرای دستور زیر به هم بچسبونم؟

system ( "cp [File Name] /home/hosein" )
با تشکر
« آخرین ویرایش: 17 تیر 1388، 06:02 ق‌ظ توسط حسین تابش »

آفلاین pedrambehroozi

  • Jr. Member
  • *
  • ارسال: 37
  • جنسیت : پسر
پاسخ به: مشکل با رشته ها در زبان C
« پاسخ #1 : 12 تیر 1388، 11:10 ب‌ظ »
سلام

char* file_name = [File Name];
system ("%s %s %s", string1, file_name, string2);

موفق باشی
Avoid the Gates of Hell. Use Linux

آفلاین سعید رسولی

  • ilius, saeedgnu
  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1543
  • جنسیت : پسر
پاسخ به: مشکل با رشته ها در زبان C
« پاسخ #2 : 13 تیر 1388، 02:08 ق‌ظ »
از strcat و sprintf هم میشه استفاده کرد.

آفلاین حسین تابش

  • Jr. Member
  • *
  • ارسال: 46
  • جنسیت : پسر
پاسخ به: مشکل با رشته ها در زبان C
« پاسخ #3 : 17 تیر 1388، 06:01 ق‌ظ »


char* file_name = [File Name];
system ("%s %s %s", string1, file_name, string2);

در این صورت با پیغام خطا مواجه می شم که آرگومان اضافی استفاده کردم! از این روش استفاده کردم مشکل حل شد.


char* command = malloc( strlen("cp ") + strlen(filename) + strlen(" /home/hosein") + 1);
sprintf(command, "cp %s /home/hosein", filename);
sysytem (command)
free(command);