相关疑难解决方法(0)

为什么memset采用int而不是char?

为什么memset采取int作为第二个参数,而不是一个char,而wmemset需要wchar_t的,而不是像longlong long

c memset

48
推荐指数
2
解决办法
5903
查看次数

将C++中的unicode字符串转换为大写字母

我们如何在C或C++中将多语言字符串或unicode字符串转换为大写/小写.

c++ string unicode

17
推荐指数
3
解决办法
2万
查看次数

为什么putchar,toupper,tolower等采用int而不是char?

在C中,字符串是char(char *)数组,字符通常存储在其中char.我注意到libC中的一些函数将作为参数整数而不是char.

例如,让我们的职能toupper()tolower()两个使用int.手册页说:

如果c不是无符号字符值或EOF,则这些函数的行为是未定义的.

我的猜测是,有一个int,toupper并且tolower能够处理unsigned charEOF.但实际上EOF是在实践中(有没有关于它的值的规则?)一个可以用a存储的值char,并且由于这些函数不会转换EOF成其他东西,我想知道为什么toupper不简单地将char作为参数.

在任何情况下,为什么我们需要接受不是字符的东西(例如EOF)?有人能为我提供相关的用例吗?

这与fputc或类似putchar,也可以将int其转换为unsigned char无论如何.

我正在寻找这种选择的确切动机.我想说服,我不想回答,我不知道有一天有人问我.

c putchar toupper tolower

15
推荐指数
1
解决办法
2279
查看次数

标签 统计

c ×2

c++ ×1

memset ×1

putchar ×1

string ×1

tolower ×1

toupper ×1

unicode ×1