数据库字符串比较大小问题

数据库字符串比较大小问题,第1张

char:固定长度,例如:char(6),你输入的字符小于6时,它会在后面补空值。当你输入的字符大于指定的数时,它会截取超出的字符。

存储字符:ANSI

数字英文存储:最多能存储8000个。

汉字存储:4000个汉字

-----------------------------分割---------------------------

varchar(n):可变长度,(n为某一整数,不同数据库,最大长度n不同)

存储字符:ANSI

n必须是一个介于1和8,000之间的数值。存储大小为输入数据的字节的实际长度,而不是n个字节。所输入的数据字符长度可以为零。

数字英文存储:最多能存储8000个。

汉字存储:4000个汉字

-----------------------------分割-----------------------------

nvarchar:可变长度,

存储字符:Unicode

Unicode所有的字符(汉字和英文)都用两个字节表示。

数字英文存储:最多能存储4000个。

汉字存储:4000个汉字

一般来说如果含有中文字符,用nvarchar,如果纯英文和数字,用char/varchar。

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。

在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段。

#include<stdioh>
#include<stringh>
int main()
{
int stringcmp(char str1 ,char str2);
int n,i,c[100];
char a[100],b[100],p=a,q=b;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%s",&a);//<---此处%s输入是字符串输入,空格也是一个字符,a[100]未填满就全部赋给a[]里面去了。你合并起来赋值肯定会出错的。
scanf("%s",&b);//<---还有a[i]只是字符数组里的一个元素,你却要吧整个字符串赋给它,这也是错的。
c[i]=stringcmp(p,q);
}
for(i=0;i<n;i++)
{
printf("%d\n",c[i]);
}
return 0;
}
int stringcmp(char str1 ,char str2)
{
int a=0,i,n;
n=strlen(str1);
for(i=0;i<n;i++)
{
if((str1+i)!='\0' && (str2+i)!='\0')
{
a=(str1+i)-(str2+i);
if(a!=0) goto A;//---
}
else if((str1+i)=='\0'&&(str2+i)=='\0')
{a=0;goto A;}//---
else if((str1+i)=='\0')
{a=-((str2+i)-'0');goto A;}//---
else if((str2+i)=='\0')
{a=(str1+i)-'0';goto A;}//---
}
A://<-----此处用goto…to语句跳出for循环。
return a;
}

根据你的程序稍作修改,运行如下:

。!!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13202287.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-19
下一篇 2023-06-19

发表评论

登录后才能评论

评论列表(0条)

保存