c語言字元轉為字元串
Ⅰ c語言變成字元串
有strstr()就可以了
#include<stdio.h>
#include<string.h>
voidcount(charstr[][100],intn,charcmpstr[100])
{
for(inti=0;i<n;++i)
{
if(strstr(str[i],cmpstr)!=NULL)
printf("%d:%s ",i,str[i]);
}
}
intmain()
{
charstr[][100]={"321312","Iamaman","youareaman","qwertyyouyuiuff"};
charcmpstr[100]="you";
intn=sizeof(str)/100;
count(str,n,cmpstr);
return0;
}
Ⅱ c語言char型字元串轉換成int型字元串
1、把char型轉換成int類型。
for(int i=0;i<str.length();i++)
{
char temp_char=str.charAt(i);
//把字元轉換成數字方法一
int temp_int=temp_char-'0';
//把字元轉換成數字方法二
int temp_int=Integer.parseInt(String.valueOf(temp_char));
}
第一種辦法:通過charAt(i),把字元串的每位變成char型,然後用當前字元減去字元0(temp_char-'0'),得到當前字元的int值。
第二種辦法:把字元再轉成字元串,然後再強制轉換成int型。
2、把字元串拆分成一位一位的
第一種方法:循環後charAt(i);
注意:charAt(i)得到的是字元串對應的每位字元,可是不能直接轉成int,轉成int依然是ASCII值。
第二種方法:char[]temp=str.toCharArray();
注意:char[]里的內容不是字元串的每位字元,而是每位字元的ASCII值。
具體如下:
package cjl;
import java.util.Scanner;
/**
一維碼有一種編碼是ean13,是一串13位數字。其中第13位是校驗碼,作用是校驗前面12個數字是否正確。
校驗方法如下:
1、前12位數字從左起,將所有的奇穗逗數位相加得出一個數a,將所有的偶數位相加得出一個數b
2、將數b乘以3再與a相加得到數c
3、用10減去數c的個位數,如果結果不為10則校驗碼為結果本身,如果為10則校驗碼為0
請在控制台任意輸入一個12位數字,然後輸出校驗碼
author ff
/
public class CheckCode{
public void checkCode(String str)
{
int checkCode=0;
int a=0;//奇數位的和
int b=0;//偶數位的和
for(int i=0;i<str.length();i++)
{
char temp_char=str.charAt(i);
//把字元轉換成數字方法一
int temp_int=temp_char-'0';
//把字元轉換成數字方法二
//int temp_int=Integer.parseInt(String.valueOf(temp_char));
//System.out.println("temp_char="+temp_char);
//System.out.println("temp__int="+temp_int);
if((i+1)%2==0)//偶數位
{
b+=(int)temp_int;
}
else//奇數位
{
a=a+(int)temp_int;
}
}
int c=a+b*3;
int c_gw=c%10;
int d=10-c_gw;
//System.out.println("a="+a+"b="+b+"c="+c+"c_gw="+c_gw+"d="+d);
if(d==10)
{
checkCode=0;
}
else
{
checkCode=d;
}
System.out.println("checkCode="+checkCode);
}
public void Input()
{
while(true){
Scanner scanner=new Scanner(System.in);
System.out.println("請輸入一個12位的數字。。。。。。");
String str=scanner.nextLine();
if((str.length()==12)&&(str.matches("[0-9]+")))
{
checkCode(str);
break;
}
}
}
/**
param args
/
public static void main(String[]args){
CheckCode codeVo=new CheckCode();
codeVo.Input();
}
}
運行結果:
請輸入一個12位的數字。。。。。。
111111111111
checkCode=6
(2)c語言字元轉為字元串擴展閱讀:
char是計棚族渣算機編程語言(c、c++、java、VFP等)鏈悄中可容納單個字元的一種基本數據類型。
char是一個數據類型,作用是定義字元型變數(單個或是字元串)。
比方int是整形數據,int a=3;這里int是類型,a是整型變數,3是賦值;
char s='A';char是字元類型,s是字元型變數,A是賦值給變數s;
char s[]="c program";char是字元類型,s[]是字元型數組,"c program"是賦給數組的值。
Ⅲ 文字在c語言中怎麼轉化為字元串
#include<stdio.h>
intmain()
{
charhi[]="Hello";
printf("%s",hi);
return0;
}
以上是最簡單的用char儲存字元串的方式:
看第一行,「Hello」這個字元串有6個字母對吧,還有一個結尾『 』的標記,一共7個位元組的長度;
因此,在初始化hi變數時,系統會為hi分配7個位元組的長度的連續內存,輪沒為什麼是連續內存,因為hi是char類的數舉核組,數組都是連續內存的!
然後hi的第一個位元組的內存放『H』,第二個位元組放『e』,第三個放『l』……第七個放結尾標記『 』
你想問怎麼轉化對吧,這個是根據ASCII表格的規定存放的,這是美國規定的轉化定律。c語言的char每1個位元組,8bit,也就是8個二進制位。可以表示0 ~ 2的8次方
在這百個數中,每個數字都代表一個符號(字母),比如H是72.也就是說hi的第一個元素,char類型的內存里是這樣存72的:0 1 0 0 1 0 0 0
以上就是8bit二正桐掘進制,如果你用printf(「%d」,hi【0】);列印,你會發現,其實hi的第一個元素就是72這個數。
詳細ascii對照表請看附件圖
Ⅳ C語言中怎樣將一個字元數組裡面的所有元素變成一個字元串
首先要明確的是,「字元串」在C語言中的含義實際上就是一個char類型的指針或數組,且最後一位置為0標記字元串的結束。所以,你所說的」字元數組「我是否可以理解為一個沒有終結符0的char類型數組?
這樣的話,方法如下
#include<string.h>
intmain()//這里為了方便直接用main函數
{
chararray[]={'h','e','l','l','o'};
/*需要注意的是,這里沒有終結符,故需要知道數組的*/
/*大小(數組的大小是編譯時常量)*/
char*dest_str;//目標字元串
dest_str=(char*)malloc(sizeof(char)*(sizeof(array)+1));
/*為字元串分配堆空間*/
strncpy(dest_str,array,sizeof(array));
//用C標准庫函數strncpy拷貝字元
return0;
}
實際上在C中,指針和數組還是有一點微妙的區別的,具體可參考度娘
Ⅳ 在C語言中 怎麼講單個的一個字元轉換成字元串
void main()
{
char ch='a'鏈念;
char* str= new char[10];
strcpy(str, &ch);
str[1]='\激漏0';
cout<<str<棚鉛困<endl;
}
Ⅵ C語言字元數組轉換字元串
不可能做得完全一樣!char *s = "abc";這樣的定義意思是「創建一個常字元串abc,將首地址(就是a的地址)賦給char*型指針s」。可以設法讓數組a變成字元串,再讓一個s指針指向它,但目標卻不是常量,也不在常量區。可以用下面的代碼做個效果差不多的轉換。
//#include"stdafx.h"//Ifthevc++6.0,withthisline.
#include"stdio.h"
intmain(void){
chara[3]={'a','b','c'},b[4];
constchar*s;
b[0]=a[0],b[1]=a[1],b[2]=a[2],b[3]='