#includestdio.h
站在用户的角度思考问题,与客户深入沟通,找到久治网站设计与久治网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站制作、成都网站设计、企业官网、英文网站、手机端网站、网站推广、域名注册、网络空间、企业邮箱。业务覆盖久治地区。
#define max 200 //输入的数最多两百个
int main()
{
int i,input,len=0;
int a[max],front;
printf("\nplease input the number!\n");
scanf("%d",input);
printf("请输入要取出的位数!\n");
scanf("%d",front);
len=strlen(input); //输入数字的长度
for(i=0;ifront;i++) //用来取出所有的单个数字
{
a[i] =input/(10^len);
input=input%(10^len);
len--;
}
for(i=0;ifront;i++)
{
printf("%d",a[i]);
}
}
这道题应该能运行,不能的话,发个消息过来,我来调试下!
C标准库中提供了一个字符串分割函数strtok();
实现代码如下:
#include stdio.h
#include string.h
#define MAXSIZE 1024
int main(int argc, char * argv[])
{
char dates[MAXSIZE] = "$GPGGA,045950.00,A,3958.46258,N,11620.55662,E,0.115,,070511,,,A*76 ";
char *delim = ",";
char *p;
printf("%s ",strtok(dates,delim));
while(p = strtok(NULL,delim))
{
printf("%s ",p);
}
printf("\n");
return 0;
}
运行结果截图如下:
#include stdio.h
#include stdlib.h
#include string.h
#define M 1000
void getnumber(char a[],int b[],int *clen)
{
char c[M];
int i = 0;
int k = 0;
int num;
int len = 0;
int flag = 0;
char *p;
for(i = 0,p = a ; i=strlen(a) ;p++,i++)
{
if(*p='0' *p = '9')
{
len++;
flag = 1; //在数字字符里面
}
else if(flag == 1 )
{
strncpy(c,p-len,len);
c[len] = '\0';
num = atoi(c);//将字符串转化为数字
b[k++] = num; //用数组存放截取下来的数字
flag = 0;// 标识0代表进入了非数字字符
len = 0;
}
}
*clen = k;
}
void main (void)
{
char a[M];
int b[M];//用来存放从字符串截取下来的数字
int i = 0;
int k ;
printf("请输入带数字的字符串:");
gets(a);
getnumber(a,b,k);
for(i = 0; i k; i++)
printf("%d\n",b[i]);//将存好的数输出
}
根据单个分隔字符用split截取
string st="GT123_1";
string[] sArray=st.split("_");
即可得到sArray[0]="GT123",sArray[1]="1";
2.利用多个字符来分隔字符串
tring str = "GTAZB_JiangjBen_123";
string[] sArray = str.Split(new char[2] { 'j', '_' });
foreach(string e in sArray)
{
Console.WriteLine(e);
}
得到sArray[0]="GTAZB",sArray[1]="Jiang",sArray[2]="Ben",sArray[3]="123";
3根据字符串或字符串组来截取字符串
string str = "GTAZB_JiangjBen_123";
string[] sArray = str.Split( new string[]{"Ji","jB"}, StringSplitOptions.RemoveEmptyEntries);
foreach(string e in sArray)
{
Console.WriteLine(e);
}
得到sArray[0]="GTAZB_",sArray[1]="ang",sArray[2]="en_123";
4提取字符串中的第i个字符开始的长度为j的字符串;
string str = "GTAZB_JiangjBen_123";
int start=3,length=8;
Console.WriteLine(str.Substring(start-1, length));
strncpy 是 C语言的库函数之一,来自 C语言标准库,定义于 string.h,char *strncpy(char *dest, char *src, int n),把src所指字符串的前n个字节复制到dest所指的数组中,并返回指向dest的指针。
函数原型char*strncpy(char*dest,char*src,size_tn);
复制字符串src中的内容(字符,数字、汉字....)到字符串dest中,复制多少由size_tn的值决定。如果src的前n个字节不含NULL字
符,则结果不会以NULL字符结束。如果src的长度小于n个字节,则以NULL填充dest直到复制完n个字节。src和dest所指内存区域不可以重
叠且dest必须有足够的空间来容纳src的字符长度+'\0'。
atoi (表示 alphanumeric to integer)是把字符串转换成整型数的一个函数,应用在计算机程序和办公软件中。
功 能: 将字符串转换成整型数;atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负号才开始做转换,而再遇到非数字或字符串时('\0')才结束转化,并将结果返回(返回转换后的整型数)。
用 法: int atoi(const char *nptr);
如果是浮点数或者其他类型可以使用atof,sscanf函数来进行字符串到数值的转换。
例如:atoi(strncpy(dest,src+5,10))//把src字符串从第五位开始数10个的字符串转换为一个int值。
int x;
123456 取个位:x=123456%10
取白位:x=(123456%100)/10
1234.56 小数点后面的第一位: x=((int)(1234.56*10))%10
1234.56 小数点后面的第二位: x=((int)(1234.56*100))%10