如何使用strcpy将字符串和用户输入放入新字符串?

回顾

抱歉,标题有点混乱,但是基本上我试图创建一个将更改用户默认外壳的命令。

用户只需要调用命令(btb)并输入用户名即可,例如btb USERNAMEbtb为args [0],而USERNAME为args [1]。现在,我需要将其变成一个字符串,以便可以使用它进行系统调用system("chsh -s /bin/bash USERNAME")

到目前为止,我有这个

int Registerbtb(char **args)
{
  char command[50];
  strcpy(command, args[1]);
  system(command);
  return 1;
}

这只是将args [1]放入命令中。但是我需要做的是strcpy(command, ("chsh -s /bin/bash %s", args[1]));那是不可能的。

我能做到这一点有什么其他的方式,使命令将有串"chsh -s /bin/bash USERNAME"在其

莱纳斯

strcpy不是您要寻找的功能。snprintf如果知道大小,则应该改用缓冲区来保存字符串:

char buf[50];
snprintf(buf, sizeof(buf), "chsh -s /bin/bash %s", args[1]);

请记住,上面的示例存在一个潜在的错误,即字符串将被截断。

如果您事先不知道用户名的大小,则可以调用snprintf两次以为字符串动态分配内存,这是一个示例程序。

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>

int main(int argc, char **args) {
  char *str;

  // TODO check if argc is equal to one

  int length = snprintf(NULL, 0, "chsh -s /bin/bash %s", args[1]);
  assert(length >= 0); // TODO add proper error handling
  str = malloc(sizeof(char) * length);
  snprintf(str, length, "chsh -s /bin/bash %s", args[1]);

  printf("%s [%d]\n", str, length); // do something with the str
  free(str);
}

或者,如果您在系统上可以使用,则可以使用asprintf来使您免于头痛。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何存储用户输入和更新字符串的顺序

来自分类Dev

比较用户输入和字符串

来自分类Dev

比较用户输入和字符串

来自分类Dev

如何将字符串用户输入分成两个不同的字符串?

来自分类Dev

如果值不为零,如何输入新字符串

来自分类Dev

如何使用字符串参数(从用户输入的字符串)做出if-else语句?

来自分类Dev

如何在字符串中搜索使用javascript从用户输入的字母字符串

来自分类Dev

如何将字符串输入转换为带整数和字符串的元组

来自分类Dev

C和strcpy中的字符串

来自分类Dev

如何将“字符”放入字符串文字中?

来自分类Dev

如何将一个输入字段的每个单词存储在新字符串中

来自分类Dev

如何使用正则表达式将字符串的开头(在用户指定的字符之前)放入组中?

来自分类Dev

如何使用结构将字母从每个字符串移动到一个新字符串?

来自分类Dev

如何使用 std::map 将字符串和字符对映射到字符串?

来自分类Dev

strcpy函数如何将大字符串复制为小字符串?

来自分类Dev

旧字符串和新字符串在列中的字符串替换

来自分类Dev

如何将IF语句与字符串用户输入一起使用?

来自分类Dev

如何使用if语句将字符串与用户输入匹配?(Java)

来自分类Dev

用户输入字符串到字符串数组

来自分类Dev

将变量放入字符串(引号)

来自分类Dev

将变量放入字符串(arduino)

来自分类Dev

将数组值放入字符串

来自分类Dev

将括号放入字符串python

来自分类Dev

将字符串放入整数

来自分类Dev

将JSON字符串放入商店

来自分类Dev

无法将字符串放入变量

来自分类Dev

将变量放入字符串PHP

来自分类Dev

将 execvp 的输出放入字符串

来自分类Dev

如何使用日期字符串和时间字符串创建DateTime字符串?

Related 相关文章

  1. 1

    如何存储用户输入和更新字符串的顺序

  2. 2

    比较用户输入和字符串

  3. 3

    比较用户输入和字符串

  4. 4

    如何将字符串用户输入分成两个不同的字符串?

  5. 5

    如果值不为零,如何输入新字符串

  6. 6

    如何使用字符串参数(从用户输入的字符串)做出if-else语句?

  7. 7

    如何在字符串中搜索使用javascript从用户输入的字母字符串

  8. 8

    如何将字符串输入转换为带整数和字符串的元组

  9. 9

    C和strcpy中的字符串

  10. 10

    如何将“字符”放入字符串文字中?

  11. 11

    如何将一个输入字段的每个单词存储在新字符串中

  12. 12

    如何使用正则表达式将字符串的开头(在用户指定的字符之前)放入组中?

  13. 13

    如何使用结构将字母从每个字符串移动到一个新字符串?

  14. 14

    如何使用 std::map 将字符串和字符对映射到字符串?

  15. 15

    strcpy函数如何将大字符串复制为小字符串?

  16. 16

    旧字符串和新字符串在列中的字符串替换

  17. 17

    如何将IF语句与字符串用户输入一起使用?

  18. 18

    如何使用if语句将字符串与用户输入匹配?(Java)

  19. 19

    用户输入字符串到字符串数组

  20. 20

    将变量放入字符串(引号)

  21. 21

    将变量放入字符串(arduino)

  22. 22

    将数组值放入字符串

  23. 23

    将括号放入字符串python

  24. 24

    将字符串放入整数

  25. 25

    将JSON字符串放入商店

  26. 26

    无法将字符串放入变量

  27. 27

    将变量放入字符串PHP

  28. 28

    将 execvp 的输出放入字符串

  29. 29

    如何使用日期字符串和时间字符串创建DateTime字符串?

热门标签

归档