精华内容
下载资源
问答
  • 不同长度字符串比较
    千次阅读
    2020-10-20 21:59:37

    在c语言中因为没有字符串类型,所以我们只能用字符数组来保存字符串常量
    而如果想实现输入任意长度的字符串且都能被接受,就需要如下操作

    	int b;//这个b是想输入字符串的长度
    	scanf("%d\n", &b);
    	char* a = NULL;
    	a = (char*)malloc(sizeof(char)*(b+1));//在堆区创建字符串的存储空间
    	fgets(a,b+1, stdin);//输入字符串
    	fputs(a, stdout);//输出字符串
    	free(a);//释放在堆区的内存
    

    本文还是没有解决随意输入字符串的问题,必须还需要一个先决条件的输入。

    更多相关内容
  • 字符串长度的计算与字符串比较

    千次阅读 多人点赞 2016-01-11 17:56:55
    字符串长度的计算 (1)计算字符串长度时关键是要注意辨认转义字符;(2)一个转义字符总是以反斜杠开始,再加一个其他字符组成。所以,遇到反斜杠时要特别注意!!! 1、不带转义字符的字符串  如:“abc!x=/”,其...

    字符串长度的计算
    (1)计算字符串长度时关键是要注意辨认转义字符;(2)一个转义字符总是以反斜杠开始,再加一个其他字符组成。所以,遇到反斜杠时要特别注意!!!
    1、不带转义字符的字符串
      如:”abc!x=/”,其长度为 7
    2、带转义字符的字符串
      (1) 字符串”abc\n”:其中的’\n’为转义字符(换行符),计算字符串长度时只能计作一个字符,所以该字符串的长度为4(而不是5)
      (2) 字符串”abc\n\\\’\”“:其中有4个转义字符:’\n’(换行符)、’\\’(反斜杠)、’\”(单引号)、’\”’(双引号),所以该字符串的长度为7(而不是11)。
      (3) 字符串“abc\0xyz”:其中有一个转义字符’\0’,它是字符串结束符,所以,当用函数strlen来测试该字符串的长度时,结果应该为3(而不是7)。
      (4) 字符串“abc\\0xy”:其中有一个转义字符’\\’(反斜杠),这样,后面的字符串“0xy”照样计算,所以,该字符串的长度为7(而不是将第二个反斜杠与其后的0结合为一个转义字符’\0’,若那样的话,第一个反斜杠将无法处理,因为一个转义字符总是由反斜杠加其他字符组成的,单独的一个反斜杠不能作为任何合法的字符)。
      (5) 若将字符串“abc\\0xy”改为“abc\\\0xy”:则其中有二个转义字符’\’(反斜杠)和’\0’(字符串结束符),这时,当用函数strlen来测试该字符串的长度时,结果应该为4(而不是7)。
      (6) 若将字符串“abc\\\0xy”改为“abc\\\061xy”:则其中有二个转义字符’\’(反斜杠)和’\061’(ASCII码值等于061的字符,也即数字字符’1’),这时,当用函数strlen来测试该字符串的长度时,结果应该为7(而不是4或9)。所以,当遇到转义字符’\0’时,还要看其后面是否还有数字,若有,则应将后面的数字(一至二位)与前面的’\0’相结合作为一个字符计入整个字符串的长度。
       若用printf(“abc\\\061xy”);输出结果为:abc\1xy
      (7)printf(“\x69\082\n”);输出结果为:i
       sizeof(“\x69\082\n”)结果为6
    \x69为十六进制的69,十进制105对应字母i,而\0xx是八进制,但八进制只有数字0-7,\082显然不是。

    字符串的比较
    1. C中的char[]

    #include <string.h>
    
    char s1[10],s2[10]; 
    ... 
    if(strcmp(s1,s2)==0) 
        printf("两字符串相等\n");
    //string.h 头文件中就有比较函数,可以用来比较是否相等

    C语言中为什么两个字符串不能直接进行比较?
    有如下代码:

    char s1[] = "abc";
    char s2[] = "abc";
    
    //如果直接进行比较:
    if (s1 == s2)
    {
    printf("s1等于 s2");
    }
    else
    {
    printf("s1 不等于s2");
    }

    大家想想输出结果会是什么呢?

    输出结果永远为:s1 不等于 s2.(不论你换成char s1[] = “abc”; char s2[] = “def”; 还是char s1[] = “def”; char s2[] = “abc”;,输出结果都一样)。

    为什么呢?
    大家因为这样比较,其实是在把s1和s2当作指针来进行比较,而不是比较两个数组中的内容。因为s1和s2在内存中位置肯定不同,所以s1 == s2的值肯定为0,所以出现上面的结果也就是理所当然了。
    这个应该可以追溯到C语言中 数组(字符串也可认为是数组)的访问机制

    2.C++中string字符串比较

    #include <iostream>
    #include <string>
    using namespace std;
    int main()
    {
        char a1[] = "abc";
        char a2[] = "abc";
        char a3[] = "abbc";
        if(a1 == a2)                    //a1 != a2
            printf("a1 = a2\n");
        else
            printf("a1 != a2\n");
        if(0 == strcmp(a1, a2))         //a1 = a2
            printf("a1 = a2\n");
        else
            printf("a1 != a2\n");
        if(strcmp(a2, a3)>0)            //a2 > a3
            printf("a2 > a3\n");
    
        string s1 = "abc";
        string s2 = a1;
        string s3 = "abbc";
        if(s1 == s2)                    //s1 = s2
            printf("s1 = s2\n");
        if(s1 == a1)                    //s1 = a1
            printf("s1 = a1\n");
        if(s2>s3)                       //s2 > s3
            printf("s2 > s3\n");
    
    
        return 0;
    }
    展开全文
  • 目录字符串比较字符串长度字符串拷贝字符串拼接 字符串比较 比较两个字符串指针:如果两个字符串相等,返回0 strcmp(区分大小写) //多字节 stricmp(不区分大小写) //多字节 wcscmp(区分大小写) //宽字节 wcsicmp...

    字符串比较

    比较两个字符串指针:如果两个字符串相等,返回0

    • strcmp(区分大小写) //多字节
    • stricmp(不区分大小写) //多字节
    • wcscmp(区分大小写) //宽字节
    • wcsicmp(不区分大小写) //宽字节
    • _tcscmp();(区分大小写) //多字节宽字节皆可
    • _tcsicmp();(不区分大小写) //多字节宽字节皆可
    • CString::Compare();(区分大小写)
    • CString::CompareNoCase();(不区分大小写)
    int wcscmp(
       const wchar_t *string1,
       const wchar_t *string2
    );
    
    int wcsicmp(
    	 const wchar_t * _Str1,
    	 const wchar_t * _Str2
    );
    

    字符串长度

    • strlen(); //获取多字节字符串长度,不包含 ‘/0’。
    • wcslen(); //获取宽字节字符串长度,不包含 ‘/0’。
    • _tcslen() //获取宽字节和多字节字符串长度,不包含 ‘/0’。
    • CString::GetLength();
    size_t wcslen(
       const wchar_t *str
    );
    

    字符串拷贝

    • strcpy(); //多字节字符串拷贝
    • wcscpy(); //宽字节字符串拷贝
    • _tcscpy(); //两者皆可字符串拷贝
    • CString::operator =
    wchar_t *wcscpy(
       wchar_t *strDestination,
       const wchar_t *strSource
    );
    

    字符串拼接

    • strcat(); //多字节字符串拼接
    • wcscat(); //宽字节字符串拼接
    • _tcscat(); //两者皆可字符串拼接
    • CString::operator +=
    wchar_t *wcscat(
       wchar_t *strDestination,
       const wchar_t *strSource
    );
    

    字符串转换

    USES_CONVERSION;//定义转换宏
    
    T2A:wchar_t->char
    A2T:char->wchar_t
    
    展开全文
  • 字符串和目标字符串去空格后转为单字符集,定义一个变量intersection,自定义算法计算让intersection值增加,相似度百分比值=intersection*2/unionLength(两个字符串长度和)*100. 代码如下: public static ...

    1.背景介绍

    今天在公司接到一个需求,大概是这样的.我们ERP系统数据库有张customer(客户)表,其中有个字段是小区名称(plotName),当初在录入数据时没有对这一字段做界定和规范,由人工手动录入,这就导致两位客户本是一个小区,而录入的小区名可能不是完全一样的结果.例如张三和李四都住在武林邸,而张三录入的数据是"武林邸",李四录入的数据的"杭州市西湖区武林邸",又或是舞林邸等.由于业务需要,现需要对这些小区名进行名称规整,如上述例子都规整为"杭州市西湖区武林邸".

    2.解决方案如下

    既然要规整,就要有统一的名称规范,最终决定从安居客,租房网等爬出杭州市各小区的标准名称.再用数据库现有数据与之对比.列出最相似的前三个名称,然后泽其一修数据库数据.

    如下图所示:匹配度及为相似度算法计算所得结果.

    3.难点

    难点就是字符串相似度对比算法的设计,网上查阅大量资料,如字符串最小编辑距离匹配算法此处不适用,因为对比的字符串与目标字符串长度不一样,会导致对比结果不是正确的.用代码和数据验证如下:

    对比的三个字符串如下:                                     目标字符串为:"龙悦湾金石院子"

    1. "浙江省杭州市拱墅区龙悦湾金石院子"
    2. "金石院子十六幢二单元302"
    3. "金子"
     public static void main(String[] args){
            LinkedList list=new LinkedList();
            String source = "龙悦湾金石院子";//目标字符串
            String target1 = "浙江省杭州市拱墅区龙悦湾金石院子";
            String target2="金石院子十六幢二单元302";
            String target3="金子";
            System.out.println(target1+"最小编辑距离是:"+minEdit_distance(source,target1));
            System.out.println(target2+"最小编辑距离是:"+minEdit_distance(source,target2));
            System.out.println(target3+"最小编辑距离是:"+minEdit_distance(source,target3));
        }

    其中minEdit_distance()方法是最小编辑距离算法,根据此算法的思想,如果最小编辑距离值越小,则说明两个字符串越相似.而此处打印结果为9,12,5.即"金子"与"龙悦湾金石院子"最相似,"浙江省杭州市拱墅区龙悦湾金石院子"第二,"金石院子十六幢二单元302"第三,而实际应该是"金子"与"龙悦湾金石院子"最不相似,是不期望得到的结果.

    打印结果:

     

    4.最终解决方案

    将字符串和目标字符串去空格后转为单字符集,定义一个变量intersection,自定义算法计算让intersection值增加,相似度百分比值=intersection*2/unionLength(两个字符串长度和)*100.

    代码如下:

     public static String compareStrings(String str1, String str2) {
            DecimalFormat df = new DecimalFormat("0.00");//格式化小数
            ArrayList pairs1 = wordLetterPairs(str1.toUpperCase());
            ArrayList pairs2 = wordLetterPairs(str2.toUpperCase());
            int intersection = 0;
            int union = pairs1.size() + pairs2.size();
            for (int i=0; i<pairs1.size(); i++) {
                Object pair1=pairs1.get(i);
                for(int j=0; j<pairs2.size(); j++) {
                    Object pair2=pairs2.get(j);
                    if (pair1.equals(pair2)) {
                        intersection++;
                        pairs2.remove(j);
                        break;
                    }
                }
            }
            return df.format((2.0*intersection)/union*100)+"%";
        }
    private static String[] letterPairs(String str) {
            int numPairs = str.length()-1;
            String[] pairs = new String[numPairs];
            for (int i=0; i<numPairs; i++) {
                pairs[i] = str.substring(i,i+2);
            }
            return pairs;
        }
    
        private static ArrayList wordLetterPairs(String str) {
            ArrayList allPairs = new ArrayList();
            String[] words = str.split("\\s");
            for (int w=0; w < words.length; w++) {
                String[] pairsInWord = letterPairs(words[w]);
                for (int p=0; p < pairsInWord.length; p++) {
                    allPairs.add(pairsInWord[p]);
                }
            }
            return allPairs;
        }

    运行结果:正确

     

     

    展开全文
  • java怎么判断字符串字符串长度

    千次阅读 2021-02-26 15:25:51
    6 首先要判断是否是汉字 ...//显示字符串长度 System.out.println("字符串中汉字长度:"+getChineseCount(s)); //调用方法显示汉字长度 System.out.println(getStringInfo(s)); //调用方法显示其它字母类型的长度 } } 8
  • 直接上代码: public class Test { /** * 将字符串按照指定长度分割成字符串数组 * * @param src * @param length * @return */ public static ...
  • java中截取指定长度字符串的方法

    千次阅读 2021-03-14 17:47:25
    我们经常会用到截取指定长度字符串的情况。通常的做法是使用subString()方法进行,但字符串中存在全角字符的情况下,使用此方法往往达不到目的,它实现的只是字符的个数(全角字符也按一个字符处理),按照byte数...
  • C++比较字符串的大小原理

    千次阅读 2019-09-09 09:14:53
    C++比较字符串的大小原理 原理:两个字符串自左向右逐个字符相比(按ASCII值大小相比较)。 例子 #include<iostream> #include<cstring> using namespace std; int main(){ string s1 = "123457"; ...
  • sql server 获取字符串长度, 判断字符串长度,获取字段长度, 判断字段长度
  • C语言字符串长度

    千次阅读 2021-05-19 08:03:14
    C语言strlen函数教程在因为 strlen 函数时不包含最后的结束字符的,因此一般使用 strlen 函数计算的字符串长度会比使用strlen函数详解语法size_t strlen(const char *str);参数参数描述str要计算长度字符串。...
  • SQL-字符串提取/字符串长度

    千次阅读 2021-12-19 14:45:13
    本文主要记录SQL-字符串提取substr()/substring()/left()/right()/like()/rlike()/substring_index()操作/获取字符串长度length()/char_length()/character_length()/bit_length()的相关笔记
  • python输出指定长度字符串

    千次阅读 2020-12-05 13:18:00
    import ioimport sysimport randomimport stringdef generate_random_str(randomlength=16):"""生成一个指定长度的随机字符串,其中string.digits=0123456789string.ascii_letters=...
  • 字符串比较原理(strcmp,string)

    万次阅读 多人点赞 2019-10-29 10:49:09
    字符串比较分为两种情况,一种是单个字符比较大小,一种是多个字符构成的字符串整体比较大小。 字符与字符串比较原理: 字符串与字符比较原理其实都是比较单个字符的ASCII码值。 如果单纯比较长度,直接调用类似于...
  • 在python中如何获取字符串长度

    万次阅读 2020-11-20 18:16:19
    python中如何获取字符串长度?本篇文章就给大家介绍4种在python中计算并输出字符串长度的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。Python中的字符串是Unicode代码点的不可变序列。...
  • python如何修改字符串长度

    千次阅读 2021-01-29 19:00:41
    python如何修改字符串长度发布时间:2020-09-23 17:16:18来源:亿速云阅读:95作者:Leah今天就跟大家聊聊有关python如何修改字符串长度,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,...
  • C语言统计输入的字符串长度

    千次阅读 2021-05-19 08:04:44
    很多情况下,我们需要知道用户输入的字符串长度,以便进行下一步工作。很多读者立即想起了strlen()函数,其实是有问题的,请看下面的代码:#include #include int main(){char str[21];int strLen;printf("Input ...
  • 字符串如何比较大小

    万次阅读 多人点赞 2020-08-25 13:40:09
    字符比较(character comparison)是指按照字典次序对单个字符或字符串进行比较大小的操作,一般都是以ASCII码值的大小作为字符比较的标准。 【比较方式】 可以使用String类的compareTo()方法来实现。该方法用于...
  • //判断字符串长度(英文占1个字符,中文汉字占2个字符)var GetLength = function (str) {///获得字符串实际长度,中文2,英文1///要获得长度字符串var realLength = 0, len = str.length, charCode = -1;...
  • 计算字符串尾部空格长度

    千次阅读 2021-03-08 08:46:56
    如下面一串字符串:DECLARE @str NVARCHAR(MAX) = N'Insus.NET '为了计算得到字符串尾的空格长度,得先了解2个函数,LEN()和REVERSE(),LEN()函数返回文本字段中值的长度,这个函数,它包含字符串头部所有空格长度,...
  • Python将字符串按照固定长度分割

    万次阅读 多人点赞 2020-05-29 10:44:09
    将已知的字符串string按照固定长度分割,假设这里的固定长度为5。 2. 解决方案 import re string = "asdfghjklqwertyuiop" st = re.findall(r'.{5}', string) print(st) 输出如下,且最后不足5位的,直接舍弃。 ...
  • JavaScript字符串长度

    千次阅读 2020-01-16 22:26:18
    大家好,欢迎观看JavaScript教程(十一、JavaScript字符串长度) 一、字符串长度 length:  描述:JavaScript提供了一系列方法,来帮助我们更好的使用字符串 测量字符串长度:length属性 描述:...
  • s 输入字符串 转义字符 转义字符是一种特殊的字符常量。转义字符以反斜线”\”开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符。例如,在前面各例题printf函数的格式串...
  • Oracle 数据库使用sql语句: select lengthb('输入字符串') from dual ,来计算 字符串 所占的字节长度(比如,一个汉字3个字节),但是用这个lengthb函数时,输入字符串长度不能超过4000,这样遇到一些超长字符串就...
  • shell 中的字符串比较 详细

    万次阅读 2019-01-23 10:54:43
    shell 脚本是linux 运维管理员的一项...现在简单说明一下关于shell中基础的部分,字符串比较。   需要注意的是,使用-z 或-n 判断字符串长度时,变量要加双引号; # [ -z $a ] &amp;&amp; echo yes...
  • 三种方法求字符串长度

    千次阅读 2022-01-02 09:33:35
    在求字符串长度时,第一时间会想到运用strlen这个函数,但对于初学者来说,除了掌握这个函数之外,还应当自己写函数来实现相似的功能。 接下来我列举了三种方法来求字符串长度,供大家参考: (1)运用strlen ...
  • 数据库中在对于数字与非数字混合的字符串,在进行大小比较的时候,如果两字符串长度相等,那么两字符串就会比较相同位置的字符,比较时若字符是数字,则直接比较,若字符是非数字那么会转换为ascii码进行比较,若在...
  • python 按照固定长度分割字符串

    千次阅读 2019-10-31 21:29:39
    借助 python 脚本,可以轻松实现,原理就是:字符串的按照固定长度拆分。 方法一: 代码示例: import time # 一百万条数据做测试 str_list = ["902B345FB021"] * 1000000 # 方法一: t...
  • 如何获取Python字符串长度

    千次阅读 2020-10-10 07:54:22
    在本教程中,我们将寻找不同的方法来获取字符串长度。 使用镜头功能 (Using Len Function) Python have build in function named len which will provide the length of the given string. We will just provide...
  • C#转固定长度字符串

    万次阅读 2016-12-09 20:05:14
    //固定长度字符串处理 //1.int类型转固定长度 Console.WriteLine(string.Format("{0:D5}", 123)); Console.WriteLine(string.Format("{0:D5}", 456)); //2.字符串转固定长度 //使用PadLeft方法可以自定义填充值 ...
  • 字符串长度

    千次阅读 2021-07-03 09:05:08
    下面字符串长度为 考点:转义字符 转义字符的意义: 我们使用的字符串都是用 “ ” 双引号框起来的,电脑只识别双引号内框起来的内容: printf(" "); 但是如果想表达的字符是 “ “abc” ”,即如下 printf(" ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,626,033
精华内容 650,413
热门标签
关键字:

不同长度字符串比较

友情链接: testjquery.rar