Вместо использования низкоуровневых функций C и строк C (указателя) в Swift, я предлагаю использовать чистые манипуляции со строками Swift:
func formattedString(left: String, right: String, width: Int = 20) -> String {
// The `max` call returns 0 if `width - left.count` is negative
let filler = String(repeating: " ", count: max(0, width - left.count))
return left + filler + right
}
let result = formattedString(left: "Firstname: ", right: "Alfred") + "\n" + formattedString(left:"Lastname: ", right: "LongLastname") + "\n" + formattedString(left:"Note:", right: "private")
print(result)
// Firstname: Alfred
// Lastname: LongLastname
// Note: private
Чтобы отрезать длинные строки, вы можете сделать это так:
func limit(string: String, length: Int) -> String {
if string.count <= length {
return string
}
return string.prefix(length) + "…"
}