我必须在C中编写一个函数,它接收一串字符,然后将每个字符添加到数字13.我已经提出了这个解决方案:
#include<stdio.h>
main()
{
char text[100];
gets(text);
code (text);
}
code (char text[100])
{
int i;
for(i=0;i<=98;i++)
{
text[i]=text[i] + 13 ;
}
printf ("%s",text);
return (0);
}
这是对的吗?
答案 0 :(得分:1)
您需要查看一些细节:
// a void function should NOT return
void code (char text[]){
// when passing a string as argument, you don't need to indicate its' size
int i = 0; // pay attention to give a value when initializing
while (text[i] != '\0') { // '\0' indicates string's end...
// while not the end
text[i] += 13; // same as text[i] = text[i] + 13;
i += 1; // same as i = i + 1;
}
printf("%s", text);
// the string was encoded
}
示例:
char text[100]; // its' size is 100, but..
gets(text); // if you read "hello" from input/keyboard
结果将是:
value -> h e l l o \0
| | | | | |
position -> 0 1 2 3 4 5 ....
你的文字在第5位结束....因为那样,你需要搜索&#39; \ 0&#39;,找到字符串结束的位置..
希望它有所帮助。