Поскольку вы меняете исходный (который является «строкой») и копируете его на новый (который является строкой два).
Если у вас есть возможность использовать отладчик, то вы увидите что в первую очередь вы меняете «строку».
Редактировать: Или вы можете попробовать это, если хотите: я немного изменил код.
char *capitalize(char *str,char *str2) {
strcpy(str2, str);
int i;
for (i = 0; i < strlen(str2); i++) {
if (str2[i] >= 97 && str2[i] <= 122) {
str2[i] -= 32;
}
}
return str2;
}
С этим небольшим изменением в вашей функции вы выполняете всю работу в функция. Вы просто набираете capitalize(string,stringTwo);
, и это будет делать то, что вы хотели.