1

文字列のASCII値を追加したいのですが、「こんにちは」と言ってください。cでそれを行うための最良の方法は何ですか?文字列をループさせない方法はありますか?

4

2 に答える 2

3

もちろん、ループせずにそれを行うことができます:

#include <stdio.h>

int sum(const char *s) { return *s == 0 ? 0 : *s + sum(s + 1); }

int main()
{
    printf("%d\n", sum("hello"));
    return 0;
}
于 2012-12-20T16:58:51.840 に答える
1

コンパイル時に文字列の長さがわからない限り、ループなしでこれを行う方法はありません。

char *str = "hello";
int total = 0;

while(*str) { total += *str++; }
于 2012-12-20T16:58:00.557 に答える