c - 在 C 中操作字符串

标签 c arrays string pointers

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

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

在 python 中,我将执行以下操作

def foo(str):
  return str

显然事情不像在 C 中那么容易。

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

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

我设置的任务是基于如何执行该操作,所以我不想明确说明。

所以 Python 将是:

def foo(str):
  #do something to str (which doesn't change it's length)
  return str

最佳答案

有两种方式:

  1. 如果您操作原始字符串,则不需要返回任何内容
  2. 如果您不想更改原始字符串,您应该使用 strdupmalloc + strcpy 复制它并返回一个指针 (char *) 到它。调用者当然必须在完成后释放它。

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

关于c - 在 C 中操作字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7813441/

相关文章:

c - 使用C设置apache环境变量,功能类似PHP apache_setenv函数

c - 我将如何仅将文件的结束位存储在 c 中的变量中

c++ - 在 MATLAB 中迭代坐标矩阵的最佳方法?

php - mysqli 在查询中添加了空值

java - 如何从数组列表创建数组

c++ - 涉及循环的简单程序由于某种原因卡住了

c++ - 如何在 C++ 中将 std::decimal::decimal128 转换为字符串

string - 如何在 Rails 应用程序中处理 "ellipsify"冗长的文本?

c - 从数组循环中获取最小和最大标签

python - 如何配置环境以使用 LLVM Clang 构建 python 嵌入式 c 代码