LittleFatNinja
@LittleFatNinja
горе девелопер, любитель лютой садомии

Как добавить «префикс» к аргументу argv[1] в С?

Как добавить "префикс" к аргументу argv[1] в С?

В программу вторым аргументом приходит приходит строка, домустим "name".
Как к ней добавить "my"?
Я реализовал алгоритм сдвига массива вправо, сдвигаю массив и вначало добавляю префикс, но мне необходимо знать длину пришедшего массива, в чем и проблема
void arrayShift(char array[], int len, int offset) {
	int last = len - 1;
	
	for ( int i = last; i >= 0; i-- ) {
		array[i+offset] = array[i];
	}
}


необходимо приблизительно следущее:
arrayShift(argv[1], size, 2);

argv[1][0] = 'm';
argv[1][1] = 'y';

prinf("%s\n", argv[1]);


помогите разобратся!!
  • Вопрос задан
  • 293 просмотра
Решения вопроса 1
LittleFatNinja
@LittleFatNinja Автор вопроса
горе девелопер, любитель лютой садомии
короче просто проинклудил string.h и взял strlen()
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Eddy_Em
char *p = malloc(strlen(argv[2]+4));
sprintf(p, "my %s", argv[2]);
argv[2] = p;
Ответ написан
библиотека string.h для С

функция strlen( const char * string );
вернет количество символов в строке

функция strcat для дозаписи в строку
char * strcat( char * destptr, const char * srcptr );
т.е.
char buf*="my ";
strcat(buf,argv[1]);
argv[1]=buf;
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы