Tag: toupper

C语言中的toupperfunction

#include #include char* strcaps(char* s) { while (*s != ‘\0’) { toupper(*s); s++; } return s; } 。 int main() { char makeCap[100]; printf(“Type what you want to capitalize: “); fgets(makeCap, 100, stdin); strcaps(makeCap); return 0; } 这个程序编译得很好,但是当我运行它时,它不输出任何东西。 我在这里失踪了什么?

你如何在C中将字母字符转换为n字符串为大写?

这就是我到目前为止所拥有的。 我只是想了解如何实现这个function。 char toupper(char s[]) { s[50] = “hello”; int i = 0; int len; len = strlen(s); while(i < len) //converting to upper until the length is reached. { s[i] = putchar(toupper(s[i])); i++; } return s[i]; }

C函数用于大写数组中单词的第一个字母

我对C很陌生,在创建以下function时遇到了障碍。 我想使用这个函数来为一个静态字符数组(char string []创建单词大写的第一个字母。它看起来不错,但我得到一些语法错误,这可能是非常基本的。编译器错误: 错误:无效转换从const char’ to const char *’初始化`size_t strlen(const char *)的参数1’只读位置的赋值 void Cap(char string[]){ int i; int x = strlen(string); for (i=1;i<x;i++){ if (isalpha(string[i]) && string[i-1] == ' '){ // only first letters of a word. string[i]= toupper(string[i]); }if (isalpha(string[0])) { string[0]=toupper(string[0]); } } }

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

在C中,字符串是char( char * )的数组,字符通常存储在char 。 我注意到libC中的一些函数是作为参数整数而不是char。 例如,让我们使用函数toupper()和tolower()都使用int 。 手册页说: 如果c不是无符号字符值或EOF,则这些函数的行为是不确定的。 我的猜测是,使用int , toupper和tolower能够处理unsigned char和EOF 。 但事实上EOF在实践中(有没有关于它的价值的规则?)一个可以用char存储的值,并且由于这些函数不会将EOF转换成其他东西,我想知道为什么toupper不会简单地采取一个char作为参数。 在任何情况下,为什么我们需要接受不是字符的东西(例如EOF)? 有人能为我提供相关的用例吗? 这与fputc或putchar类似,它也采用转换为unsigned char 。 我正在寻找这种选择的确切动机。 我想要被说服,我不想回答,我不知道有一天有人问我。

在调用toupper(),tolower()等之前,是否需要转换为unsigned char?

不久之前,StackOverflow上有名望的人在评论中写道,在调用std::toupper (和类似的函数)之前,有必要将char -argument转换为unsigned char 。 另一方面,Bjarne Stroustrup没有提到在C ++ – Programming Language中这样做的必要性。 他只是喜欢使用toupper string name = “Niels Stroustrup”; void m3() { string s = name.substr(6,10); // s = “Stroustr up” name.replace(0,5,”nicholas”); // name becomes “nicholas Stroustrup” name[0] = toupper(name[0]); // name becomes “Nicholas Stroustrup” } (引自上述书,第4版。) 该引用表明输入需要表示为unsigned char 。 对我来说,这听起来像每个char都有,因为char和unsigned char具有相同的大小。 那么这个演员是不必要的还是Stroustrup不小心? 编辑: libstdc ++手册提到输入字符必须来自基本源字符集 ,但不会强制转换。 […]