zoukankan      html  css  js  c++  java
  • [c/c++] programming之路(21)、字符串(二)

    一、for /l %i in (1,1,5) do calc  等命令行参数

     1 #define _CRT_SECURE_NO_WARNINGS
     2 #include<stdio.h>
     3 #include<stdlib.h>
     4 
     5 void main() {
     6     /*char str[] ="for /l %i in (1,1,5) do calc";
     7     char *p = "for /l %i in (1,1,5) do calc";*/
     8     //str[0] = ' ';        str是数组,存储的是字符串的每一个字符
     9     //*p = ' ';            p是指针,存储字符串的地址,所以不能对其赋值
    10     
    11     char str[100] = { 0 };
    12     int num;
    13     char op[30] = { 0 };
    14     scanf("%d %s", &num, op);
    15     printf("for /l %%i in (1,1,%d) do %s",num,op);
    16     sprintf(str,"for /l %%i in (1,1,%d) do %s", num, op);
    17     system(str);
    18 
    19     system("pause");
    20 }

     1 #define _CRT_SECURE_NO_WARNINGS
     2 #include<stdio.h>
     3 #include<stdlib.h>o
     4 
     5 void main() {
     6     char str[100] = { 0 };
     7     char op[30] = { 0 };
     8     scanf("%s", op);
     9     sprintf(str,"taskkill /f /im %s",op);
    10     system(str);
    11 
    12     system("pause");
    13 }

    二、变色龙

     1 #define _CRT_SECURE_NO_WARNINGS
     2 #include<stdio.h>
     3 #include<stdlib.h>
     4 #include<Windows.h>
     5 
     6 void main() {
     7     system("tasklist");
     8     while (1)
     9     {
    10         for (int i = 0x0; i <= 0xf; i++)//0x    16进制
    11         {
    12             char str[30] = { 0 };//存储指令
    13             sprintf(str, "color %x%x", i, 0xf - i);//打印指令
    14             system(str);//变色
    15             Sleep(200);
    16         }
    17     }
    18     system("pause");
    19 }

    三、gets和puts(对比scanf和printf)

    puts()函数自动换行。

    四、strstr(在串中查找指定字符串的第一次出现)

     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 #include<string.h>
     4 
     5 void main() {
     6     char str1[50] = "my name is yincheng";
     7     char str2[20] = "chen";
     8     char *p = strstr(str1, str2);
     9 
    10     if (p == NULL)        printf("没找到!");
    11     else
    12     {
    13         printf("找到了,%p,%c
    ", p,*p);//%p:地址类型
    14     }
    15     system("pause");
    16 }

    五、strcmp以及自己实现这个函数功能(mystrcmp)

     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 #include<string>
     4 
     5 void main() {
     6     char str1[50] = "hello yincheng";
     7     char str2[50] = "hello yincheng";
     8     int num;
     9     num = strcmp(str1, str2);
    10     printf("%d
    ", num);//num==0表明相等
    11     if (num == 0)    //验证密码
    12         printf("字符串相等");
    13     else            
    14         printf("字符串不等");
    15 
    16     system("pause");
    17 }

     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 #include<string>
     4 
     5 void main() {
     6     //Windows排序忽略大小写,strcmp严格区分大小写
     7     char str1[50] = "BaAAA";
     8     char str2[50] = "BAAAA";
     9     //字符都有编号,大写A65,小写a97;
    10     //字符串比较:从左到右依次比较
    11 
    12     int num;
    13     num = strcmp(str1, str2);//对比大小
    14     printf("%d
    ", num);//num==0表明相等
    15     if (num < 0)    
    16         printf("第一个字符串比较小");
    17     else  if(num>0)
    18         printf("第一个字符串比较大");
    19     else
    20         printf("两个字符串相等");
    21     system("pause");
    22 }

     1 #define _CRT_SECURE_NO_WARNINGS
     2 #include<stdio.h>
     3 #include<stdlib.h>
     4 #include<string>
     5 
     6 int mystrcmp(char *p1, char *p2) {
     7     int i = 0;
     8     while (p1[i]==p2[i]&&p1[i]!='')
     9     {
    10         i++;
    11     }
    12     int num;//代表返回值
    13     if (p1[i] == '' && p2[i] == '')
    14         num = 0;//判断相等
    15     else
    16         num = p1[i] - p2[i];
    17     return num;
    18 }
    19 
    20 void main() {
    21     char str1[50] = "AppCompat";
    22     char str2[50] = "AppPatch";
    23     _strupr(str1);//全部升级为大写
    24     _strupr(str2);
    25     printf("%s
    %s
    ",str1,str2);//打印字符串
    26     int num = mystrcmp(str1, str2);
    27     if (num < 0)    
    28         printf("第一个字符串比较小");
    29     else  if(num>0)
    30         printf("第一个字符串比较大");
    31     else
    32         printf("两个字符串相等");
    33     system("pause");
    34 }

    六、strncmp及strchr

     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 #include<string.h>
     4 
     5 void main() {
     6     char str1[30] = "notepad1";
     7     char str2[30] = "notepadcalc";
     8     if (strncmp(str1, str2, 7) == 0)
     9         printf("相等");
    10     else
    11         printf("不相等");
    12 
    13     system("pause");
    14 }

     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 #include<string.h>
     4 
     5 void main() {
     6     char str[30] = "notepad1";
     7     //char *p = strchr(str, 't');//找到
     8     char *p = strchr(str+3, 't');//没找到
     9     //strchr第一个参数可以从任意位置检索字符
    10     if (p==NULL)
    11         printf("没找到
    ");
    12     else
    13         printf("找到%p,%c
    ",p,*p);
    14 
    15     system("pause");
    16 }

    七、字符串二级指针

     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 
     4 char str1[30] = "notepad";
     5 char str2[30] = "tasklist";
     6 
     7 //函数有副本机制,形式参数会开辟内存,新建一个变量,容纳传递过来的实际参数
     8 void change(char * str) {
     9     printf("change-%p
    ", &str);
    10     str = str1;//改变指针指向
    11 }
    12 
    13 //改变一个变量,需要变量的地址;如果变量是地址,需要二级指针
    14 void changep(char **pp) {
    15     *pp = str1;
    16 }
    17 
    18 void main() {
    19     char *p = str2;
    20     //change(p);
    21     changep(&p);
    22     printf("main-%p
    ", &p);
    23     system(p);
    24 
    25     system("pause");
    26 }

  • 相关阅读:
    表格的增删改查
    选择省份时,自动显示对应省份的城市
    弹框提示用户输入
    dom
    css基础
    HTML基础
    B
    poj 1840 Eqs
    hdu 1166 敌兵布阵(线段树)
    poj 2586 Y2K Accounting Bug
  • 原文地址:https://www.cnblogs.com/little-monkey/p/7485988.html
Copyright © 2011-2022 走看看