是否可以在不使用sprintf的情况下将int转换为C中的字符串?

时间:2019-01-06 16:24:30

标签: c

我需要制作这样的代码,以使char的{​​{1}}数组像这样:

int

另一个例子:

int a = 312419;
string = ['+','3','1','2','4','1','9']

我只能使用:

  • int a = -20; string = ['-', '2', '0'] (但不包括<stdio.h>函数系列)
  • *printf()
  • <stdlib.h>
  • <string.h>循环

2 个答案:

答案 0 :(得分:1)

答案是“是,有可能”

但是,我不会为您做所有家庭作业,因此,这里有一些代码不能解决整个问题,但可以给您自己解决问题的想法。

  int a = 312419;
  while(a)
  {
    int t = a % 10;
    char c = '0' + t;
    printf("%c\n", c);
    a = a / 10;
  }

输出:

9
1
4
2
1
3

注意如何以相反的顺序打印数字。而不是这样做,您的任务是按照正确的顺序将字符保存在数组中。

答案 1 :(得分:0)

您可以使用public function store(Request $request) { $imgLocation = Storage::disk('public')->put(time() . '.' . $request->file('image')->getClientOriginalName(), $request->gif), $request->file('image')); // you may need this to save it in an image model / table if dont skip this creation $image = Image::create([ 'name' => $request->name, 'path' => $imgLocation ]); if ($video) { return response()->json("Success!"); } return response()->json("Error!"); // You can also return redirect()->route('image.index')... }

snprintf

唯一的区别是,您将在int a = -20; char string[MAXLEN+1]; snprintf(string, MAXLEN, "%d", a) 数组的末尾获得一个\0值。