[关闭]
@FE40536 2019-07-03T21:02:31.000000Z 字数 1724 阅读 863

C语言基础字符串

C 字符串


字符串

定义

多个字符连接在一起,以\0结束的内容

格式

char 数组名[] = "abcde";
char 数组名[] = {'a','b','c','d','\0'};
char *str = "abcde";

char arr[3] = {'a','b'}; //也是字符串
char arr[3] = "abc" //不是字符串

字符串的输入输出

字符串的输入输出占位符是%s
在scanf中如果输入空格或回车会自动结束,可以用gets(字符串)获取空格,puts(字符串)输出字符串

  1. char str[10] = { 0 };
  2. printf("请输入字符串\n");
  3. scanf("%s", str);
  4. printf(str);
  5. gets(str); // 获取 输入 scanf
  6. puts(str);
  1. //有一句英语 计算有多少单词 每个单词以空格分隔
  2. char str[100] = { 0 };
  3. printf("input:");
  4. gets(str);
  5. int flag = 1;
  6. int count = 0;
  7. for (int i = 0; str[i] != '\0'; ++i)
  8. {
  9. if (str[i] == ' ')
  10. {
  11. flag = 1;
  12. }
  13. else if (flag == 1)
  14. {
  15. ++count;
  16. flag = 0;
  17. }
  18. }
  19. printf("有%d个单词\n", count);

字符串函数

strcmp(str1, str2):字符串比较函数,比较ASCII码大小,strcmp(str1, str2)当str1>str2时返回1,等于时返回0,小于时返回-1
strlen(str1):字符串长度函数,不包括'\0'
strcat(str1, str2):字符串拼接函数,要预留有效位置
strcpy(str1, str2):字符串拷贝函数
strchr(str5, '@'):字符串查找函数,返回字符指针
strstr(str6, str5):判断str5是不是str6的子字符串
strset(str6, 's'):将str6所有字符设置成's'

  1. char *str1 = "abc";
  2. char str2[] = "bcd";
  3. char str3[10] = "abcde";
  4. char str4[] = "123";
  5. char str5[] = "123@456"
  6. //strcmp
  7. int x = strcmp(str1, str2);
  8. printf("%d\n", x);
  9. //strlen
  10. printf("strlen(str3) = %d\n", strlen(str3)); //strlen(str3) = 5
  11. printf("sizeof(str2) = %d\n", sizeof(str3)); //sizeof(str2) = 10
  12. //strcat
  13. strcat(str3, str2);
  14. printf("%s\n", str3);
  15. //strcpy
  16. strcpy(str3, str4);
  17. printf("%s", str3);
  18. //strchr
  19. char *s1 = strchr(str5, '@');
  20. printf("%c\n", *s1); //@
  21. char *s2 = strchr(str5, '@');
  22. printf("%s\n", s2); //@456
  23. //strstr
  24. int a = strstr(str6, str3);
  25. printf("%s\n", a);
  26. int b = strstr(str6, str5);
  27. printf("%s\n", b);
  28. 输出
  29. abcdef
  30. (null)
  31. //strset
  32. strset(str6, 's');
  33. printf("%s", str6);
  34. 输出
  35. sssssssss
  1. // 案例加密解密
  2. char txt[128] = { 0 };
  3. printf("请输入明文字符串:\n");
  4. gets(txt);
  5. int len = strlen(txt);
  6. int i = 0;
  7. for (; i < len; ++i)
  8. {
  9. txt[i] = txt[i] + i + 5;
  10. }
  11. txt[i] = '\0';
  12. printf("加密字符串:%s\n", txt);
  13. i = 0;
  14. for (; i < len; ++i)
  15. {
  16. txt[i] = txt[i] - i - 5;
  17. }
  18. printf("解密后字符串:%s\n", txt);
  19. 输出
  20. 请输入明文字符串:
  21. asdfasdfadsfads
  22. 加密字符串:fyknj}ornrrv?
  23. 解密后字符串:asdfasdfadsfads


添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注