char *string = "abc"和char string[] = "abc“的区别
2009-11-19 11:06
316 查看
今天在CSDN上看见有人问了这样的问题:
这是小写转大写的code,用到了函数库strupr:
#include <stdio.h>
#include <string.h>
int main(void)
{
char *string = "abcdefghijklmnopqrstuvwxyz", *ptr;
/* converts string to upper case characters */
ptr = strupr(string);
printf("%s\n", ptr);
return 0;
}
这段code为什么总提示strupr找不到?编写其它code没问题,不应该是函数库的问题?
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
char *string = "abcdefghijklmnopqrstuvwxyz" 这句的意思是所字符串常量"abcdefghijklmnopqrstuvwxyz"的地址赋给指针变量 string ,因为在用库函数strupr()试图利用指针间接改变字符串常是不被允许的。
只要把char *string = "abcdefghijklmnopqrstuvwxyz"换成char string[] = "abcdefghijklmnopqrstuvwxyz", 即可。原因是后者是把字符串常量的值考贝到了string[]数组中,些数组为变量,用针指间接的修改它是合理的。
这是小写转大写的code,用到了函数库strupr:
#include <stdio.h>
#include <string.h>
int main(void)
{
char *string = "abcdefghijklmnopqrstuvwxyz", *ptr;
/* converts string to upper case characters */
ptr = strupr(string);
printf("%s\n", ptr);
return 0;
}
这段code为什么总提示strupr找不到?编写其它code没问题,不应该是函数库的问题?
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
char *string = "abcdefghijklmnopqrstuvwxyz" 这句的意思是所字符串常量"abcdefghijklmnopqrstuvwxyz"的地址赋给指针变量 string ,因为在用库函数strupr()试图利用指针间接改变字符串常是不被允许的。
只要把char *string = "abcdefghijklmnopqrstuvwxyz"换成char string[] = "abcdefghijklmnopqrstuvwxyz", 即可。原因是后者是把字符串常量的值考贝到了string[]数组中,些数组为变量,用针指间接的修改它是合理的。
相关文章推荐
- char *string="xxxxxxxxx" 与 char string[]="xxxxx"的区别
- char *string="xxxxxxxxx" 与 char string[]="xxxxx"的区别
- char *s=&quot;string&quot;和char s[]=&quot;string&quot;的区别
- char *s="string"和char s[]="string"的区别
- char *s="string"和char s[]="string"的区别
- char *s="string"和char s[]="string"的区别
- char *s="string"和char s[]="string"的区别
- char *s="string"和char s[]="string"的区别
- String.Empty,NULL和""的区别
- 使用log4cplus时遇到的链接错误:无法解析的外部符号 "public: static class log4cplus::Logger __cdecl log4cplus::Logger::getInstance(class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,
- "",string.Empty和null三者的区别
- NULL,"",String.Empty三者在C#中的区别
- char* p="abc"与char p[] = "abc"区别
- request.querystring("id")与request("id")区别在哪!
- 字符指针 char *p="abc" 与 char p[]="abc"的区别
- char[] ,char*,string 三者的区别及转换
- String.Empty、""和NULL的区别
- oracle中的char和varchar2区别,String等的区别
- String a="abc"和String b=new String("abc")的区别及String相关常用操作
- String str 与 String str=new String("") 区别