```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
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)