C语言,利用指针编写程序:把从键盘输入的字符串逆序存放并输出

C语言,利用指针编写程序:把从键盘输入的字符串逆序存放并输出,第1张

以下是C语言程序,使用指针将键盘输入的字符串逆序存放,并输出结果:

```c

#include <stdio.h>

#include <string.h>

int main() {

char str[100], temp

int len, i

char *p1, *p2

printf("请输入一个字符串:")

scanf("%s", str)

len = strlen(str)

p1 = str

p2 = str + len - 1 // 指向字符串最后一个字符

for (i = 0i <len/2i++) {

temp = *p1

*p1 = *p2

*p2 = temp

p1++

p2--

}

printf("逆序存放后的字符串为:%s", str)

return 0

}

```

程序先从键盘输入一个字符串,然后获取字符串的长度和指向字符串首尾的指针。接着,使用指针交换相应位置上的字符,完成字符老竖串逆序存放。最后输出逆序存放后的字符串。

注意,字符串的长度可能为奇老派数或偶数,因此在for循环中应该只交换字符串长度除以侍含大2个字符即可。

函数和渗粗调用的汪兄例子如下。适用于 数组 a[n][n], 和 s[n] 的情况。

#include <stdio.h>

void fun(int *a, int *s, int n){

int i,j,k

k=n*n

for (j=0j<nj++){

s[j]= *(a+j*n)

for (i=0i<ni++)

if (*(a+j*n + i) >困喊袭 s[j]) s[j]= *(a+j*n + i)

}

}

int main ( )

{

int a[5][5],s[5]

int i,j

for (j=0j<5j++) for (i=0i<5i++) a[j][i]=j*10+i

fun( &a[0][0], s,5)

for (i=0i<5i++) printf("%d ",s[i])

return 0

}

#include<stdlib.h>

#include<stdio.h>

#include<ctype.h>

#define MAX 100//输入的最大字符数为100

int main()

{

int total=0//字符总数。

int count_upper=0//大写字母数。

int count_lower=0//小写字母数。

int count_digit=0//数字的个数散裂。

int count_other=0//其它字符数。

char *ptr//指向字符串的没宽指针。

char Str[MAX]//用来存放输入的字符串的数组。

printf("input the string please\n")

scanf("%s",Str)

ptr=Str//将字符指针指向字符串

while((*ptr)!='\0')

{

total++

if(isupper(*ptr))//if判断中的条件所调用冲察闭的函数均为ctype.h中的库函数。

count_upper++

else if(islower(*ptr))

count_lower++

else if(isdigit(*ptr))

count_digit++

else

count_other++

ptr++//指针像后移动一个。

}

printf("character total number is%d\n",total)

printf("upper character number is%d\n",count_upper)

printf("lower character number is%d\n",count_lower)

printf("digit character number is%d\n",count_digit)

return EXIT_SUCCESS

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12557309.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存