关于sprintf的几个问题

sprintf是可以把字符串记录到array里吗?
那也就是说array是可以记录字符串的,不止数字是吗?
被sprintf作用的字符串是记录在哪里呢,是在array里加一个位置记录它还是记录到别的地方呢?

看看这个助你更好地理解http://t.csdn.cn/obc1R

(1)是的
(2)是的
(3)记录在array里面,array的每一个元素位置存放字符串的一个字符

#array其实是数组的意思 而所谓数组, 则是有序的元素序列 。
#sprintf把格式化的数据写入某个字符串缓冲区。
你的问题总结下来,就是被sprintf作用的字符串一般作用在array里,所以也可以说array不止数字,还可以记录字符串,array记录的每一个元素位置都存放字符串的每个字符中
参考链接:https://baike.baidu.com/item/sprintf/9703430

sprintf的用法和printf一样,只不过是sprintf是把输出打印到字符串种,你的问题中”sprintf作用的字符串“我理解是他会把我们需要的输出写到你说的字符串中,而该字符串是存放在缓存中。

首先看官方解释:
函数原型:int sprintf(char *buffer, const char *format, [argument]...)
参数:buffer:是char类型的指针,指向写入的字符串指针;format:格式化字符串,即在程序中想要的格式;argument:可选参数,可以为任意类型的数据;
其次简单点讲就是sprintf将字符串格式化输出到buffer中,类似于printf是将字符串格式化输出到控制台
看下面代码更容易理解:

#include <stdio.h>

int main()
{
    int i = 10;
    char str[10] = "hello";
    char arry[100] = {0};
    
    // printf将引号里面的内容格式化输出到控制台 
    printf("test i = %d str = %s\n",i ,str);  
    
    // 将引号里面的内容格式化输出到arry 
    sprintf(arry, "test i = %d str = %s\n",i ,str); 
    
    // 将arry输出到控制台 可以看到内容与第一个printf一致 
    printf("%s", arry);

    return 0;
}

1 sprintf函数调用的主要用途就是把一个字符串放在一个已知的字符数组里去。其实这是一个很常用的库函数,在解决某些OJ题的时候会经常用到它来帮助实现字符串的转移和储存
2 是的
3 在解决某些OJ题的时候会经常用到它来帮助实现字符串的转移和储存

sprintf函数是将内容格式化输出写入到内存中(例如数组),你说的array就是数组的意思,数组也可以定义成多种类型的,int,char,都可以,当然可以存储各种类型的数据,字符串和数字都可以保存。
sprintf作用的字符串就是保存在你输入的那个数组里面。

1 是
2 是
3 参考一下

简洁的说,就是无论是字符或者是字符串亦或者是数值都可以通过该函数,转换成字符串格式。明白了么?
示例:
char buf[6];//字符数组
int a=12;//整型值
sprintf(buf, "%d", a);
就这样12这个值会被存到数组buf中,此时buf中的12已经变成字符串"12"了。

也可以把多个格式化输出到同一个数组中
示例
char buf[16];//字符数组,要保证容量足够大
int a=12;//整型值
char c='a';
char s[5]=“1234”
sprintf(buf, "%d%c%s", a, c, s);
//就这样就可以把变量a,c,s串在一起输出到buf中了,
//buf中的内容就是一个字符串"12a1234"