• 《黑马程序员》 字符串 (C语言)


    字符串的基本使用

    定义方法:

    char name[10] ="jack";   此时字符串中共包含‘j’,’a‘,'c','k',''

    中括号中的10代表该字符串最多存放10个字符

    字符串的输出

    1.printf("jack");

    2.printf(name);              //把数组传入printf语句输出会出现警告        

    这两种方法输出结果相同,但printf语句默认情况下只认字符串常量,所以第二种方法在编译时会出现警告

    字符串的存储细节:

    数组name中共占用8个字节,含有三个元素分别为'i','t',''

    char name[8] ="it";

    char name2[8] = {'i','t',''};

    char name3[8] = {'i','t',0};

    三种写法效果相同

    注:因’‘的ASCII值为0,故’‘与0等价

    修改数组内元素的值

    name[1] = 'q';      //把数组内第2个元素的值改为q;

    的作用

    为字符串的结束标志

    #include <stdio.h>  
    int main()
    {
      char name[] ="it";
      char name2[] ={'o','k'};
      printf("%s
    ",name2);
      return 0;
    }
    
    运行结果:okit

    数据内存如下所示

    strlen函数

    作用:用来计算字符串的长度,strlen函数声明在<string.h>文件中,计算的是字符数并不是字数,计算的字符不包括尾部的""

    #include <stdio.h>  
    #include <string.h>
    int main()
    {
    	char name[] ="haha";                 //定义一个字符串数组
    	int size1 =strlen(name);             //计算字符串的长度      不包含""
    	int size2 =sizeof(name);             //计算字符串的占用字节数,包含""
            printf("%d	%d
    ",size1,size2);      //输出
            return 0;
    }
    
    运行结果:4 5

     代码练习1:

    #include<stdio.h>
    //字符串数组
    int main()
    { 
    	//一维数组
    	char  name[] ="haha";
    	char name1[] ="rose";
    	char name2[] ="jim";
    	char name3[] ="jake";
    	//二维数组
    	//第一种方法
    	char name[2][10] = {"jake","rose"};
    	//第二种方法
    	char name[2][10] = 
    	{
    		{'j','a','k','e',''};
    		{'r','o','s','e',''}; 
    	};
            return 0;
    }
    

      代码练习2:

    #include <stdio.h>
    #include <string.h>
    /*编写一个函数char_contains(char str[],char c),如果字符串中str中包含字符C,
    则返回数值1,否则返回数值0.
    */
    int char_contains(char str[],char c)
    {
    	int i;
    	//遍历数组内所有元素,检测数组内是否包含字符C
    	for(i = 0;i < strlen(str);i++){
    		if(str[i] ==c){
    		//返回数值1
    		return 1;
    		}
    	}
    	return 0;
    }
    int main()
    {   
    	char  str[]="itcast";
    	int result = char_contains(str,'c');
    	printf("%d
    ",result);
    	return 0;
    }
    

     代码练习3

    #include <stdio.h>
    #include <string.h>
    int main()
    {
    	int i;
        char str[] = "cha zhao zui  chang de  zifuchuan  danci ";
        int maxCount = 0;                                      // 记录最长单词的长度
        int GB = 0;                                            // 记录单词尾字符下标
        for (i = 0; i < strlen(str); ++i) {
            int count = 0;                                     // 记录新单词长度
            while (str[i] != ' ' && str[i]) {                  // 字符不是空格也不是的时候开始记录单词长度
                ++i;                                           
                ++count;                                     
            }
            if (count > maxCount) {                             //此段if语句的最用是更新最长单词的长度     
                maxCount = count;
                GB = i - 1;
            }
        }
        printf("最长单词是:");
    	for (i = GB - maxCount + 1; i <= GB; ++i){
            printf("%c", str[i]);                                //输出最长单词
    	}
        printf("
    ");                                            //换行
        return 0;
    }
    
  • 相关阅读:
    雅虎、网易ajax标签导航效果的实现
    仿淘宝网站的导航标签效果!
    FLASH2007展望
    "运行代码”功能整理发布
    获取远程文件保存为本地文件(精简实用)
    整理JS+FLASH幻灯片播放图片脚本代码
    解决IE更新对FLASH产生影响
    模仿combox(select)控件
    0209.Domino R8.0.x升级指南
    Lotus Domino 中的高级 SMTP 设置Notes.ini相关参数
  • 原文地址:https://www.cnblogs.com/shtz/p/4439543.html
Copyright © 2020-2023  润新知