انجمنهای فارسی اوبونتو
کمک و پشتیبانی => برنامهسازی => نویسنده: حسین تابش در 12 تیر 1388، 10:02 بظ
-
با سلام خدمت دوستان،
من یه سوالی در رابطه با رشته ها در زبان C دارم.
فرض کنید من ۳ تا رشته دارم که ۲ تا از اون ها رشته های ثابت هستند و یکی از اون ها یک متغییر. به عنوان مثال:
char *string1 = "cp"
char *string2 = "/home/hosein"
یک رشته دیگر هم دارم ولی این رشته ثابت نیست، این رشته اسم یک فایل هستش و طول معینی نداره! یکی ممکنه تو یک بار اجرای برنامه باشه "TEST2" و در یک اجرای دیگه باشه "AAAAAA"! حالا با این فرض من چه جوری می توانم این ۳ تا رشته رو برای اجرای دستور زیر به هم بچسبونم؟
system ( "cp [File Name] /home/hosein" )
با تشکر
-
سلام
char* file_name = [File Name];
system ("%s %s %s", string1, file_name, string2);
موفق باشی
-
از strcat و sprintf هم میشه استفاده کرد.
-
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);