char* SumCharsAndDigits(const char* str){ int i, sum, value; char *tmpResult; tmpResult = (char *) malloc((strLen(str)+1) * sizeof(char)); if(NULL == tmpResult) return NULL; cpStr(tmpResult, str); do { sum = 0; for(i = 0; tmpResult[i] != '\0'; i++){ value = getValueOfCharAndDigits(tmpResult[i]); sum += (value < 0 ? 0 : value); } sprintf(tmpResult, "%d", sum); } while (sum >= 10); return tmpResult; }
String(const char *str = "") { size = 0; this->str = 0; size = lengthOfStr(str); this->str = (size > 0) ? cpStr(str, size) : 0; }
String(const char *str, size_t len) { size = len; this->str = cpStr(str, size); }