C语⾔实现⼤⼩字母转换、字符倒序输出
1.⼤⼩字母转换:
#include <stdio.h>
int main()
{
char str[10];
int i=0;
gets(str);
while(str[i])
{
if(str[i]>='a'&&str[i]<='z')
str[i]=str[i]-32;
else if(str[i]>='A'&&str[i]<='Z')
str[i]=str[i]+32;
i++;
}
puts(str);
return 0;
}
输出结果:
2.数组和指针的区别:
(1)、指针的本质是⼀个与地址相关的复合类型,它的值是数据存放的位置(地址);数组的本质则是⼀系列的变量。
(2)、数组名对应着(⽽不是指向)⼀块内存,其地址与容量在⽣命期内保持不变,只有数组的内容可以改变。指针可以随时指向任意类型的内存块,它的特征是“可变”,所以我们常⽤指针来操作动态内存。
(3)、当数组作为函数的参数进⾏传递时,该数组⾃动退化为同类型的指针。
数组名可以当作⼀个指针来⽤,数组名可以⽤*取其中的值,指针也可以⽤[]解引⽤,但它们还是有⼀些区别。
指针可以随时指向任意类型的内存块,它的特征是“可变”,所以我们常⽤指针来操作动态内存。指针远⽐数组灵活,但也更危险。
3.字符串倒序输出:
//解法⼀
#include <stdio.h>
#include <string.h>
int main()
{
char a[20] = {0}, b[20] = {0}, *p1, *p2;
printf("随意输⼊⼀个字符串:");
//memset(b, 0X00, sizeof(b));
gets(a);
p1 = a;
p2 = b + strlen(a) - 1;
for( ; *p1 != '\0'; p1++, p2--)
*p2 = *p1;
*p2='\0';
printf("string a is: %s\n", a);
printf("string b is: %s\n", b);
return 0;
}
输出结果:
//解法⼆
#include <stdio.h>
#include <string.h>
#define MAXN 1000
void reverse(char* str)
{
char* p = str + strlen(str)-1;
char temp;
while(str<p)
{
temp=*p;
*p--=*str;
*str++=temp;
}
}
int main()
{
char str[MAXN];
printf("请输⼊⼀个字符串:\n");
gets(str);
字符串操作函数putsreverse(str);
printf("翻转后的字符串是:\n%s\n", str); return 0;
}
输出结果:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论