C语言初阶(三)字符串

一.字符串

1.字符串遍历

数组方式

char str[]="Hello World";
for(int i = 0;'\0' != str[i];++i){
    printf("%c\n",str[i]);
}

指针方式

char str[]="Hello World";
for(int i = 0;'\0' != *(str+i);++i){
    printf("%c\n",*(str+i));
}

简化:

while('\0' != *str){
    printf("%c\n",*str++);
}

while(*str){
    printf("%c\n",*str++);
}

2.字符串赋值

char s[] = "Hello World";
char* t;
t = s;
printf("%s\n",t);

没有产生新的字符串,只是st指向相同的字符串。下面是查看两个字符串的地址。

printf("%p\n",s);
printf("%p\n",t);

字符串的修改

char s[] = "Hello World";
char* t;
t = s;
printf("%s\n",t);
t[1] = 'o';
printf("%s\n",s);
printf("%s\n",t);
s[4] = 'e';
printf("%s\n",s);
printf("%s\n",t);

输出:

Hello World
Hollo World
Hollo World
Holle World
Holle World

3.字符串输入输出

char str[8];
scanf("%7s",str);
printf("%s\n",str);

“%7s”为最多允许输入7个字符,以防溢出;数组长度为7+1。

二.字符串与函数

void print_string(char str[]){
    printf(str);
}

 例:实现字符串交换函数

#include <stdio.h>

void swop(char **str1, char **str2)//二级指针,交换str1和str2 中的存储的地址
{
    char *temp = NULL;

    temp = *str1;
    *str1 = *str2;
    *str2 = temp;
}

int main()
{
    char *str1 = "hello";
    char *str2 = "world";

    printf("str1 = %s, str2 = %s\n", str1, str2);
    swop(&str1, &str2);
    printf("str1 = %s, str2 = %s\n", str1, str2);
    return 0;
}

三.字符串指针

字符数组可以直接初始化字符数组,并且可以赋值给指针。

char s[]="Hello World";
char* p = s;
printf("%s\n",p);

字符串也可以直接赋值给指针,这种指针称为字符串指针

char* str="Hello World";
printf("%s\n",str);

四.字符串函数

1.获得字符串长度 strlen 

strlen(字符数组名)

功能:计算字符串的实际长度(不含字符串结束标志“\0”)。

2.字符串复制 strcpy

strcpy(目的字符数组名,源字符数组名)

功能:把源字符数组中的字符串复制到目的字符数组中,字符串结束标志“\0”也一同复制。

注:

①目的字符数组要有足够的长度

②“目的字符数组名”必须写成数组名形式

    “源字符数组名”可以是字符数组名,也可以是字符串常量

③不能用赋值语句将一个字符串常量或字符数组直接赋给一个字符数组

3.字符串连接 strcat 

strcat(目的字符数组名,源字符数组名)

功能:把源字符数组中的字符串连接到目的字符数组中字符串的后面,并删去目的字符数组中原有的串结束标志“\0”。

注:目的字符数组要有足够的长度

4.字符串比较 strcmp 

strcmp(字符数组名1,字符数组名2)

功能:按照ASCII码顺序比较两个数组中的字符串,并返回比较结果。

返回值:

字符串1=字符串2,返回值为0。

字符串1>字符串2,返回值为正数。

字符串1<字符串2,返回值为负数。

5.字符串大小写转换 strupr strlwr

strupr(字符串)

功能:将字符串中的小写字母转换成大写字母,其他字母不变。

strlwr(字符串)

功能:将字符串中的大写字母转换成小写字母,其他字母不变。

五.空字符串 

使用字符串时必须初始化过,如果指针定义时无法确定初始值时,使用NULL初始化指针。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现C语言字符数组字符串倒序输出,可以通过以下步骤来完成: 1. 首先,声明一个字符数组来存储字符串。例如,可以使用`char str[] = "Hello World";`来初始化一个字符串。 2. 然后,使用一个循环来计算出字符串的长度。可以使用`strlen()`函数来获取字符串的长度,需要包含头文件`<string.h>`。 3. 接下来,使用一个新的字符数组来存储倒序后的字符串。可以声明一个与原字符串长度相同的字符数组,用于存储倒序后的字符串。 4. 使用两个指针,一个指向原字符串的开头位置,另一个指向倒序后字符串的末尾位置。 5. 在一个循环中,从原字符串的末尾开始,逐个字符复制到倒序后的字符串中,直到原字符串的开头位置。同时,要记得将倒序后字符串的指针向前移动。 6. 最后,在循环结束后,倒序后的字符串就存储在新的字符数组中。可以使用`printf()`函数输出倒序后的字符串。 下面是一个示例代码实现: ```c #include <stdio.h> #include <string.h> int main() { char str[] = "Hello World"; int length = strlen(str); // 计算字符串的长度 char reverseStr[length + 1]; // 创建一个新的字符数组来存储倒序后的字符串,+1 是为了存储结束符'\0' char *pSource = str + length - 1; // 指向原字符串的末尾位置 char *pDestination = reverseStr; // 指向倒序后字符串的开头位置 while (length > 0) { *pDestination = *pSource; // 从原字符串复制字符到倒序后的字符串 pSource--; // 移动原字符串指针 pDestination++; // 移动倒序后字符串指针 length--; // 字符串长度减1 } *pDestination = '\0'; // 添加字符串结束符 printf("倒序输出的字符串:"); printf("%s", reverseStr); return 0; } ``` 以上就是使用C语言实现字符串倒序输出的详细步骤和示例代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值