如何为字符串的每个字符添加一个数字

时间:2015-04-29 17:56:13

标签: c string function

我必须在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);

}

这是对的吗?

1 个答案:

答案 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;,找到字符串结束的位置..

希望它有所帮助。