Я в основном создаю небольшой метод / функцию, которая обрезает строку, если ее длина больше, чем ввод new_line.Тем не менее, у меня есть две разные версии этого.
Первый код вычисляет длину строки и сокращает ее все по одному и тому же методу / функции.
Второй код имеет отдельные функции как для расчета длины, так и для обрезки строки.
Первый код не работает (он не обрезает строку), а второй работает.Хотя я не знаю почему.Спасибо
Код, который не работает
void shorten(char *s, int new_len){
int len = 0;
while(*s){
len++;
s++;
}
while( len > new_len){
s[len - 1] = '\0';
s--;
len--;
}
}
Код, который работает
int length(char *s){ // count length of string
int len = 0;
while(*s){
len++;
s++;
}
return len;
}
void shorten(char *s, int new_len) {
int len = length(s);
while( len > new_len){
s[len - 1] = '\0';
s--; // move to previous char
len--; // decrease length
}
}