2012-12-20 96 views
1

我想添加一个字符串的ascii值,比如说“hello”。 在c中做这件事的最好方法是什么?有没有循环的字符串?在c中添加字符串ascii值的最佳方法?

+1

如果你想在字符串中使用的每一个字符做一些事情,你必须循环。 –

回答

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; 
} 
+1

哈哈,很好。不过,我不知道我是否会用这种方式称呼这种方式! –

+0

@CoryNelson我同意这不是在C中完成它的最好方法,但是记住递归是件好事,你知道......循环很无聊,它不是唯一的方法; – piokuc

+0

是== 0适当的在c中检查NULL的方法? – Tom

1

除非在编译时知道字符串的长度,否则没有办法可以不用循环。

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

while(*str) { total += *str++; } 
相关问题