精华内容
下载资源
问答
  • 空字符 空格字符(字符) 空字符串 NULL的区别

    万次阅读 多人点赞 2015-08-29 17:04:00
    对初学者认识C语言中的空字符,空字符串,空格字符 NULL有一定的帮助,相关代码的截图,让理解起来更加直观。

    【1】      空字符  空格字符(字符)【2】空字符串   【3】 NULL的区别

    1.1 字符

    (1)首先必须明确字符型(char)是整数类型,其在内存单元是以整数形式存放。

    (2)其次,char类型的产生是为了用于:存储字母、数字、标点字符、非打印字符。

    (3) 为方便处理字符,用特定的整数表示特定字符,即我们看到的编码。实质上就是一种转化代替的思想,用这种编码从而去描述字符,最常用的是ASCII码。

    1.1.1  空字符 空格字符

     空字符:  字符串结尾的标志(\0),实际上他的数值是0。 可以理解为标志性字符型,其使命主要是为了表明字符串已经结束。

     空格字符: 空格字符( ’单引号中间有一个空格)的ASCII码10进制32,16进制的0X20

      两者区别

              最直观的区别:值不同两者的ASCII不同,空(NUL)字符码值是0,而空格字符的码值是32。再者,空字符人为规定了它的使命。

               附:‘0’ 的ASCII是48,不要跟前面两个混为一团。3者是完全不同的概念,其本身的整型值不同,代表的字符也不同。

     


    1.2 字符串

           字符串:字符串属于字符类型的派生类型(char数组)。用于字符串一定要以空字符(‘\0’)结束,故所有的字符串里面一定有一个空字符。当然空字符串(“”)也不例 外。

                          字符与字符串因为是两种不同的类型,所以也容易区分,这里就不在啰嗦。

    1.3  NULL

    NULL:值为0,空值。NULL是空地址,不占用任何字节,主要是是用来给指针赋值的。其实就是0地址,这个地址在C语言里面是不允许访问的,访问会出异常。NULL一般用来初始化指针变量。例如:
    char *str = NULL;   表明该变量不指向任何有效的内存区域,避免野指针。

     

    #include<stdio.h>
    
    int main()
    {
    	
    	char d = NULL;
    	printf("%c \n" ,d );
    	printf("NULL的ASCII码值:%d \n" ,d );
    	if(NULL == '\0')
    	{
    		printf("true") ;
    	}
    	return 0;
    }



    注意以下几点:

    (1)从Stdio.h 中我们可以看出:C++中 NULL为(int)0 ,而在 CNULL( void*  )0。据此可知在C和C++中NULL宏的值有所不同。

    (2)C程序中NULL == '\0'为真 , 只是因为'\0'也是数值0而已,两者并不是一个意思,千万别搞混了。

    3)NULL 可以赋值给任意类型变量,相应值为空

    4)为编程规范,在定义指针时,一般需要初始化,常用NULL来初始化。

          int  *p = NULL,相比直接定义int *p 而言,int   *p未初始化,p是一个野指针,保存的是一个随机值 ; int *p=NULL 已经初始化,指向一个空指针。

          int    *p  =   NULL等价于于 int   *p= 0,p的值是 0x00;int *  q  ,q的值是一个随机值。

    附字符串的输出例子:

    /*Jason Gel  2015-8-29 */
    
    #include<stdio.h>
    int main ()
    {
    	char * p = "Jason Gel jin13277480598";
    	char *q = NULL;
    	
    	if(q=='\0'&&q==0)
    	{
    		printf("NULL在ASCII码值为0,同空字符 \n");
    	} 
    	
    //	while(*p != '\0')    	//下面这两种写法是等价的 ;
    // *和++具有相等的优先级,但结合为从右向左,又因为后缀形式 故 :向将p指向的数据取出打印,然后指针再自增1 
    	while(*p!= 0)  //如果写成 while( *p++ !=0 ) ,则字符串的第一个字符不会被打印出来 
    	{
    		
    		printf("%c",*p++ );
    		
    	}
    	printf("  \n ");
    	return 0 ;
    } 


     

     

    展开全文
  • 代码是 SELECT DEPTNO,JOB ,SUM(SAL) FROM EMP GROUP BY ROLLUP(DEPTNO,JOB );...怎么用字符“ALL JOB”代替job列的NULL值?![图片说明](https://img-ask.csdn.net/upload/201707/20/1500530044_247472.png)
  • 字符串中的空格代替

    千次阅读 2014-06-05 11:41:48
    字符串中的空格用%20代替
    /*测试数据:Shen zhen is a beautiful city!*/
    /*运行结果:Shen%20zhen%20is%20a%20beautiful%20city!*/
    #include<stdio.h>
    #define SIZE 1000
    
    void wordReplace(char *str)
    {
    	char *p = str, *e=str,*q,*r;
    	char rp[] = "%20";
    	r = rp;
    	while (*e != 0){
    		++e;
    	}
    	q=e;
    	while (*p){
    		while (*p == 32){
    			while (q != p){
    				*(q + 2) = *q;/*之所以是2,是因为%20有三个字符,由于当前字符本身为空格,所以只需要往后面移动两位即可*/
    				--q;
    			}
    			while (*r != 0){/*将%20字符串复制到空白区域*/
    				*p = *r;
    				++p;
    				++r;
    			}
    			--p;/*为了能用下面的++p*,先将p往前移动一位/
    			r = rp;/*初始化*/
    			e += 2;/*字符串长度增加2*/
    			q = e;/*初始化*/
    		}
    		++p;
    	}
    	puts(str);/*输出改动后的字符串*/
    }
    
    int main()
    {
    	char str[SIZE];
    	printf("Please enter a string :\n");
    	gets(str);
    	//wordCount(str);
    	//wordReplace(str);
    	reverseWord(str);
    	return 0;
    }
    

    展开全文
  • 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为”We Are Happy.“则经过替换之后的字符串为“We%20Are%20Happy.”解析: 直观的想法是,新建一个数组,逐个复制,遇到空格时,写入%20,但这...

    题目描述:http://ac.jobdu.com/problem.php?pid=1510
    请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为”We Are Happy.“则经过替换之后的字符串为“We%20Are%20Happy.


    解析:
    直观的想法是,新建一个数组,逐个复制,遇到空格时,写入%20,但这需要占用额外空间。
    不占用额外空间的算法是原位替换。如果我们顺序的遍历字符串,当遇到空格时,用%20替换空格,这将覆盖掉空格后面的字符 || 如果覆盖前,后移剩余字符串,那么移动的时间复杂度为O(n^2).

    因此,采用从后向前复制的方式。
    注意:以下的新旧字符串是同一个字符串,只是一个是替换前,一个指替换后
    首先统计空格的个数,计算出新字符串的长度,然后用2个指针,1个指向新字符串尾,1个指向旧字符串尾,两指针同步向前,遇到空格时,新索引指针按地址写入%20,当新旧指针相等时说明已经替换完全部空格。

    从后向前的处理方式,不会覆盖原有的数据,也不会产生多余的数据移动。

    #include <iostream>
    using namespace std;
    void ReplaceBlank(char str[], int len) {
        if (str == NULL || len <= 0)
            return;
        int blank = 0; //空格数
        int oldLen = 0; // 有效字符数
        for (int i = 0; i < len && str[i] != '\0'; i++) {
            oldLen++;
            if (str[i] == ' ')
                blank++;
        }
        int oldIndex = oldLen; //之所以不-1,是因为字符串数组尾部的'\0'
        int newIndex = oldLen + 2*blank ;
        if (newIndex+1 > len) // 原有数组空间不足
            return;
        while (newIndex != oldIndex) {
            if (str[oldIndex] == ' ') {
                str[newIndex--] = '0';
                str[newIndex--] = '2';
                str[newIndex--] = '%';
            } else {
                str[newIndex--] = str[oldIndex];
            }
            oldIndex--;
        }
    
    }
    
    int main() {
        char str1[30] = "We are happy.";
        ReplaceBlank(str1, 30);
        cout << str1 << endl;
    
    }
    展开全文
  • 数字表示法的不方便之处,在于必须知道每个字符的码点,很难记忆。为了能够快速输入,HTML 为一些特殊字符,规定了容易记忆的名字,允许通过名字来表示它们,这称为实体表示法(entity)。 实体的写法是&name;,...

    数字表示法的不方便之处,在于必须知道每个字符的码点,很难记忆。为了能够快速输入,HTML 为一些特殊字符,规定了容易记忆的名字,允许通过名字来表示它们,这称为实体表示法(entity)。

    实体的写法是&name;,其中的name是字符的名子。下面是其中一些特殊字符,及其对应的实体。

    • <&lt;
    • >&gt;
    • ©&copy;
    • #&num;
    • §&sect;
    • ¥&yen;
    • $&dollar;

    • %&percnt;
    • *$ast;
    • @&commat;
    • ^&Hat;
    • ±&plusmn;
    • 空格&nbsp;

    转载于:https://www.cnblogs.com/dobeco/p/11408659.html

    展开全文
  • * 将 空格 替换为 特殊字符串 */ public class BlankToString { // 请实现一个函数,将一个字符串中的每个空格替换成“%20”。 // 例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 ...
  • Eclipse设置软tab(用4个空格字符代替)及默认utf-8文件编码(unix)   本文摘要:   1、如何配置Eclipse中编辑器支持softtab(用数个空格字符代替默认的tab缩进);   2、如何配置Eclipse中编辑器默认
  • 字符串中空格用%20代替

    千次阅读 2016-02-22 14:36:57
    ,先判断多少个空格, 再从后向前逐个插入0 2 %填补空白
  • 题目:给定一个字符串,将字符串里的所有空格替换成%20。 注意:空格替换成%20,是将1个字符变成3个字符,注意指针的移动个数。 #include #include #include int length(char *p) { int ...
  • //空格为1个字符 而%20为3个字符 所以不能简单的替换 //例如将abc d e 转变成abc%20d%20%20%20e #include #include using namespace std; string fun(string s) { string s1; for(int i=0;i { if(s[i]...
  • int main(void) { char s[] = "ni shi wo de xiao ping guo !"; char to[100]; int i,j; i=j=0; while(s[i]) {  if(s[i] != ' ' || s[i+1] != ' ') //如果字符串中第 i 和 i+1个 不是空格  {
  • 空格字符串的处理技巧 ①lstrip() 用于截掉字符串左边的空格或指定字符。 返回截掉字符串左边的空格或指定字符后生成的新字符串。 * 匹配时不是按照整个字符串匹配的,而是一个一个进行匹配。但是如果混有 ...
  • 在表单页中含有textarea控件,如果输入内容有回车换行的动作,字符串存储到数据库中后,再提取出来显示的话就会发现回车换行动作的地方让一个空格代替了,另外几个空格的位置也只变成一个空格,没有保持原想的格式...
  • 字符串中的空格替换

    千次阅读 2016-04-22 17:11:38
     解法一:最直观的做法就是从头到尾扫描字符串,每碰到一个空格,就必须先把空格后面的字符后移两个字节,否则后面的两个字节就被覆盖了,假设字符串的长度为n,对于一个空格字符,需要向后移动0(n)个字符,因
  • javascript 去除字符串首尾空格

    千次阅读 2019-08-21 23:50:50
    1、substring()截取从第一个非空格字符的索引到最后一个非空格字符索引之间的所有字符,返回截取后的字符串 String.prototype.trimOne = function () { return this.substring(Math.max(this.search(/\S/), 0), ...
  • 字符串中空格前面添加转义字符\

    千次阅读 2014-01-15 09:33:45
    从左向右,找到空格就将从空格开始后的字符后移一位,然后用“\”代替原来的空格 #include #include void insert(char * str, int n) { int length = strlen(str); int i; for (i = leng
  • 一,问题描述: 给定一个字符串,将...遇到非空格字符时,添加该字符。使用StringBuilder的add()方法添加字符。 需要一个boolean 变量指示是否是第一个空格。当遇到空格且该空格是第一个空格时,需要 添加到Str...
  • 1.替换(实现函数,把字符串的空格替换为&amp;amp;amp;amp;amp;amp;quot;%20&amp;amp;amp;amp;amp;amp;quot;)
  • 空格: &amp;nbsp CSS: letter-spacing字与字 word-spacing词与词 行距:line-height:1.5; 段落:&lt;p style="margin-top:30px;text-indent:2em;"&gt;文字&lt;/p&gt; 字与字之间...
  • 1.问题描述: 在平时使用微软的Word办公软件时打开文档出现很多其他符号。如下图: 如上图出现很多圈,其实这不是文档本身问题,而是word的问题。 比如,还有下面情况: 或者出现其他特殊符号 ...
  • 【转】空格转义字符

    2012-04-26 14:35:00
    空格直接敲键盘即可,不必转义转义字符主要是为了输入一些不方便直接用键盘输入的字符,其实任何字符都可以转义获得。输入\n将转义为换行符,软件在处理该字符时产生的是换行操作,也可以输入\12,这与\n是等同的...
  • string是不能够统计一个空格字符的。 eg: string s; cin>>s;//假设你输入“I am a boy”,那么对于s这个字符串变量只能取“I”这一个单词。 那对于输入一个带有空格的字符串,应该这么做? 通过网上查询...
  • 替换空格(空白字符)详解
  • [python字符串]替换空格

    千次阅读 2019-06-24 20:46:40
    请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 思路: 先把字符串转成list,然后对list遍历,如果s[i]=’ ‘则插入’%20’ # ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 139,522
精华内容 55,808
关键字:

代替空格的字符