【问题标题】:Replacing one letter with another in C用 C 中的一个字母替换另一个字母
【发布时间】:2014-06-13 14:10:08
【问题描述】:

我为了好玩而玩弄 C。我的程序提示用户输入他们想要定义的单词。然后我的程序使用 CURL 和一个字典 API 来返回定义。我的问题是定义的格式不正确,所以我想这样做。这就引出了我的问题。

我需要将句子的第一个单词大写。定义为 char* 格式。我不确定要使用哪些 C 字符串函数。

到目前为止,我所做的是将定义的第一个字符复制到它自己的 char 变量中。然后使用 toupper() 我将其转换为大写。我不确定如何用新的大写字母替换定义字符串中的小写字母。

这是一些代码。

char upperCase;

strncpy(&upperCase, r, 1); //copy first char of definition to upperCase (to be converted to uppercase)

printf("%c\n", toupper(upperCase)); //just prints the uppercase letter to make sure it works


printf("%s\n", r); //print the definition

r 是带有定义的字符串。

【问题讨论】:

  • 为什么不显示你目前得到的代码?
  • 欢迎来到 SO。请阅读How to Ask,了解如何写出正确的问题。这样你会得到更好的回应。
  • buf[i] &= ~('A' ^ 'a') 如果你使用的是 ascii :)
  • @DAhrens ...或者只是r[0] = toupper(r[0])更安全一些...

标签: c string


【解决方案1】:

您可以直接对字符串中的字符进行处理:

r[0] = toupper(r[0]);

您可以这样做,因为表达式 r[0] 的类型为 char。另请注意,您可以在指针上使用数组语法。如果rchar*,您仍然可以将其视为一个数组,并使用r[index] 引用其单独的char 内容。 r[0] 表示字符串中的第一个字符,r[1] 表示第二个字符,依此类推。

【讨论】:

  • 您的回答可能会让新手有些困惑。也许char str[100] 或类似的东西更好。如果新手按字面意思理解您的代码,他可能会开始抱怨分段错误。
  • @FiddlingBits OP 现在发布了一些代码,这让事情变得更加简单:-)
猜你喜欢
  • 2016-06-13
  • 1970-01-01
  • 2017-12-14
  • 2021-11-22
  • 2020-08-27
  • 2013-09-27
  • 1970-01-01
  • 1970-01-01
  • 2021-03-17
相关资源
最近更新 更多