sprintf怎么把未知长度的字符串向左对齐,最终结果输出到新的字符串中
时间: 2024-02-29 20:52:23 浏览: 156
C语言中把数字转换为字符串-sprintf
`sprintf()` 函数无法处理未知长度的字符串,因为它需要指定输出字符串的长度。不过,我们可以使用 `snprintf()` 函数来处理未知长度的字符串,并将格式化后的字符串输出到新的字符数组中。同时,我们可以使用格式化字符串来实现向左对齐的功能。
以下是示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str1[100] = "hello, world!";
char str2[100];
int len = strlen(str1);
// 向左对齐并输出到新的字符串中
snprintf(str2, len + 1, "%-20s", str1);
printf("格式化后的字符串为:%s\n", str2);
return 0;
}
```
输出示例:
```
格式化后的字符串为:hello, world!
```
在格式化字符串中,`%-20s` 表示将字符串左对齐并占据 20 个字符的位置。由于输出的字符串长度未知,我们需要先使用 `strlen()` 函数获取字符串的长度,然后将其作为参数传递给 `snprintf()` 函数中的第二个参数,以确保输出的字符串不会超出目标字符数组的空间。
阅读全文