试图计算C中字符串中有多少个字符

时间:2014-09-01 00:55:07

标签: c string reverse

void reverse(char s[]) {
    int i;
    int len = 0;
    for (i=0; s[i] != '0'; i++) {
      len = len + 1;
    }

这是我上面的代码。 s []是我试图扭转的字符串;请帮忙!感谢

5 个答案:

答案 0 :(得分:5)

使用'\0'测试空终止字符。

for (i=0; s[i] != '\0'; i++) {
  len = len + 1;
}

答案 1 :(得分:1)

void reverse(char s[]) {
    size_t i,j;
    for(i=0; s[i] != '\0'; ++i)
        ;
    if(i < 2)
        return ;
    for(j=0; j < --i; ++j){
        char c = s[i];
        s[i] = s[j];
        s[j] = c;
    }
}

答案 2 :(得分:1)

There isn't a strrev in standard C,但网络上有很多可用的实现。这是我找到的here

#include <string.h>

char *strrev(char *str)
{
    char *p1, *p2, c;

    if (! str || ! *str)
        return str;
    for (p1 = str, p2 = str + strlen(str) - 1; p2 > p1; ++p1, --p2)
    {
        c = *p1;
        *p1 = *p2;
        *p2 = c;
    }
    return str;
}

请注意,这会修改给定的字符串并执行相反的操作。

答案 3 :(得分:0)

Strings中的

C只是以null\0字符结尾的字符数组。

将条件s[i] != '0'更改为检查索引i处的字符是否为空的条件。

答案 4 :(得分:0)

使用

strrev(string1,string2)
string.h标头中的

。您也可以使用

strlen(string1)

从相同的标题中找到长度。