在C中操纵字符串

Pry*_*die 1 c arrays string pointers

披露:这是大学工作.我不希望代码完成我的任务,而是想了解如何最好地操作C中的字符串.

我需要编写一个函数来以某种方式操作字符串(我不是说什么,以确保没有人提供确切的代码).

在python中,我只是做以下事情

def foo(str):
  return str
Run Code Online (Sandbox Code Playgroud)

显然事情并不像C中那么容易.

谁能告诉我如何最好地实现这一目标.我应该使用指针来模拟通过引用传递并只是操纵原始字符串吗?任何帮助/资源将不胜感激.

更新:我确实想对字符串执行一个操作并返回该操作的结果(也是一个字符串).我很乐意操纵原始字符串或返回它.哪个曾被认为是最佳实践.

我设置的任务是基于如何进行操作,所以我不想明确这样做.

所以Python将是:

def foo(str):
  #do something to str (which doesn't change it's length)
  return str
Run Code Online (Sandbox Code Playgroud)

cni*_*tar 5

有两种方法:

  1. 如果你操纵原始字符串,则不需要返回任何内容
  2. 如果您不想更改原始字符串,则应使用strdup或复制它malloc + strcpy并返回指针(char *).打电话当然必须free在完成后.

这一切都取决于问题:调用者是否需要原始字符串