那个代码中的错误是什么
what is the error in that code?
此代码中的错误是什么??!!
提示:以下程序中的sp_to_dash()
函数为其字符串参数中的每个空格打印一个短划线。也就是说,字符串"this is a test"
将被打印为"this-is-a-test"
。
#include <stdio.h>
void sp_to_dash( char *str);
int main(void)
{
sp_to_dash("this is a test");
return 0;
}
void sp_to_dash( char *str)
{
while(*str) {
if(*str==' ' ) *str = '-';
printf("%c", *str);
str++;
}
}
字符串文字不可修改。这样改:
int main(void)
{
char str[] = "this is a test";
sp_to_dash(str);
return 0;
}
于浩的回答很好,而我有另一种方法来解决它:
void sp_to_dash( char *str)
{
while(*str) {
if(*str==' ' ) *str = '-';
printf("%c", *str);
str++;
}
}
===>
void sp_to_dash(const char *str)
{
while(*str) {
if(*str !=' ' )
printf("%c", *str);
else
printf("-");
str++;
}
}
它还打印正确的字符串,而不必修改字符串。
您正在将一个const char*
传递给您的函数,即"this is a test"
。您的数组是一个字符串文字,当编译器看到它时,它会被放入可执行文件的一个特殊只读部分(rodata)。事实上,声明为const的其余变量也是如此。诀窍是知道你的字符串是const char*
而不是char*
。
相关文章:
- Clang 8 带有静态 constexpr 和数组的链接器错误 - 错误是什么以及如何解决它?
- C++中的"expected unqualified-id"错误是什么?
- 谁能告诉我,程序中的错误是什么?该程序仅用于获取文件扩展名
- 我的代码中针对 NQueens 问题的错误是什么?
- 这个代码中的错误是什么,每次都会给我分段错误
- 'note: 候選人: Volume& Volume::operator=(const Volume&)'.这个错误是什么?
- 此气泡排序代码中的错误是什么?
- 第9行的给定代码中的错误是什么?
- C++ - "Incomplete type not allowed"错误是什么意思,我该如何修复它?
- 这个错误是什么?似乎没有理由出现
- 这个编译器错误是什么意思 - "qualified-id in declaration before ‘=’ token" C++?
- 这个boost.python程序中的错误是什么?
- C 如果该代码中的错误是什么
- TMB教程中的此编译错误是什么?
- 此代码运算符超载中的错误是什么?
- 英特尔SGX错误:8207错误是什么意思是当我无法正确加载飞地时
- 这个奇怪的"/usr/bin/ld: cannot find -lXAW_LIBRARY-NOTFOUND"错误是什么意思?
- 该代码的主要错误是什么,用于确定n`天后日期
- 错误 LNK2019:未解析的外部符号"外部"C"此错误是什么?
- 这个C++代码中的错误是什么