整數轉換爲字符串(附上力扣代碼)

#include<stdio.h>
#include<stdlib.h>
#pragma warning(disable: 4996)

int main() {
	int number = 1234;
	char string[12] = { 0 };
	itoa(number, string, 10);
	printf("Num:%d;  Str:%s\n", number, string);
	getchar();
	return 0;
}

註釋:itoa()原型:  char *itoa( int value, char *string,int radix);
原型說明:
輸入參數:
value:要轉換的數據。
string:目標字符串的地址。
radix:轉換後的進制數,可以是10進制、16進制等,範圍必須在 2-36。
功能:將整數value 轉換成字符串存入string 指向的內存空間 ,radix 爲轉換時所用基數(保存到字符串中的數據的進制基數)。
返回值:函數返回一個指向 str,無錯誤返回。
注意:itoa不是一個標準的c函數,他是windows特有的,跨平臺寫程序,要用sprintf。

報錯:vs2017下錯誤 C4996 'itoa': The POSIX name for this item is deprecated.Instead, use
解決:添加#pragma warning(disable: 4996)

字符串定義並輸出

#include<stdio.h>
#include<string.h>

int main(){
  char str[5] = "hello";
  for(int i=0; i<strlen(str); i++){
    printf("re:%c\n",str[i]);
  }
}   
註釋:
%c格式對應的是單個字符;
%s格式對應的是字符串。這裏需要用%c才能輸出hello
定義字符串也可以使用指針
#include <stdio.h>

char* intString(int num,char *str);
int main()
{
        int number = 121;
        char string[16] = {0};
        intString(number,string);
        printf("result:%d  re:%s\n",number,string);
        return 0;
}

char* intString(int num,char *str)
{
        sprintf(str, "%d", num);
        return str;

}

跨平臺使用sprintf,使用sprintf;

bool isPalindrome(int x){
    if(x<0)return false;
    if(x==0)return true;
    char* intString(int num, char *str);
    char str[100] = {0}; 
    //itoa(x, str, 10);
    //string str = to_string(x);
    intString(x, str);
    int i = 0;
    int j = strlen(str)-1;
    while(i<j){
        if(str[i] == str[j]){
        i++;
        j--;
        }else return false;
        
    }
  return true;
}
char* intString(int num, char *str){
    sprintf(str, "%d", num);
    // int j = strlen(str)-1;
    return str;
    
}
~~~力扣代碼
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章