#include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h>
<pre class="cpp" name="code">void IntToStr(int iValue, char *strOutput) { sprintf(strOutput, "%d", iValue); }
void IntToStr(int iValue, char *strOutput) { int i = 0; int len = 0; int tmp = 0; int bNegative = 0; tmp = iValue; while (tmp / 10 != 0) { len++; tmp /= 10; } if (abs(iValue) >= 0) { len++; } if (iValue < 0) { bNegative = 1; iValue = -iValue; strOutput[0] = '-'; } for (i = 0; i < len; i++) { strOutput[i + bNegative] = (char)(iValue/pow((double)10, len-1-i)) + '0'; iValue %= (int)pow((double)10, len-1-i); } strOutput[i + bNegative] = '\0'; } void ReverseString(char *s) { char *left = NULL;; char *right = NULL; char c; int len = strlen(s); for (left = s, right = s + len - 1; left <= right; left++, right--) { c = *left; *left = *right; *right = c; } } void itoa0(int n, char s[]) { int i, sign; if ((sign = n) < 0) n = -n; i = 0; do { s[i++] = n % 10 + '0'; } while ((n /= 10) > 0); if (sign < 0) s[i++] = '-'; s[i] = '\0'; ReverseString(s); } void itoa(int n, char s[]) { static int i; if (n / 10) { itoa(n / 10, s); } else { i = 0; if (n < 0) { s[i++] = '-'; } } s[i++] = abs(n) % 10 + '0'; s[i] = '\0'; } void itos(int num, char *buf) { int i = 0; if (num / 10) { itos(num / 10, buf); for(i = 0; buf[i] != '\0'; i++) ; } else { i = 0; if (num < 0) buf[i++] = '-'; } buf[i] = abs(num) % 10 + '0'; buf[i + 1] = '\0'; } void xtos(unsigned int num, char *buf) { int i; if(num < 16){ if(num < 10){ buf[0] = num + '0'; }else{ buf[0] = num - 10 + 'a'; } buf[1] = '\0'; return; } xtos(num / 16, buf); for(i = 0; buf[i] != '\0'; i++); if((num % 16) < 10){ buf[i] = (num % 16) + '0'; }else{ buf[i] = (num % 16) - 10 + 'a'; } buf[i + 1] = '\0'; } void IArrToStr(int *iArr, int iElemNum, char *strOutput) { int len = 0; int i = 0; char *pOutPos = strOutput; char strVal[6] = {0}; for (i = 0; i < iElemNum; i++) { //IntToStr(iArr[i], strVal); //itoa(iArr[i], strVal); //itoa0(iArr[i], strVal); itos(iArr[i], strVal); len = strlen(strVal); strcpy(pOutPos, strVal); pOutPos += len; *pOutPos++ = ','; } *pOutPos = '\0'; } int main() { int arr[] = {234, 12345, -345, 234, -9234, 100, 200, 0, 13, -242}; char str[6] = {0}; char strOutput[64] = {0}; int len = sizeof(arr) / sizeof(arr[0]); for (int i = 0; i < len; i++) { IntToStr(arr[i], str); printf("%s\n", str); } IArrToStr(arr, len, strOutput); printf("%s\n", strOutput); system("pause"); return 0; }