step1 . day8 C语言基础练习之指针和函数
今天繼續(xù)復(fù)習(xí)指針,還是很深?yuàn)W的,兩點(diǎn)注意事項(xiàng):
1. int型數(shù)據(jù)可以強(qiáng)制類型轉(zhuǎn)化賦值給指針變量,然后對(duì)該地址賦值(用在裸機(jī)上);
2.指針數(shù)組是數(shù)組,存放的是指針,數(shù)組指針是數(shù)組的指針,存放的是行指針。
利用數(shù)組指針對(duì)輸入數(shù)組進(jìn)行單詞數(shù)目確認(rèn)的函數(shù):
#include <stdio.h>
int wordcount(char *str){
int count;
int word = 0;
while(*str){
count = 0;
while((*str>='a' && *str<='z') || (*str>='A' && *str<='Z')){
count++;
str++;
}
if(*str == ' '){
if(count>2) word++;
str++;
continue;
}
else if(*str == '\0')
{
if(count>2) word++;
break;
}
else {
do{
str++;
}while(*str != ' ' && *str!= '\0');
}
}
return word;
}
int main(int argc, const char *argv[])
{
char str[100];
printf("please input a str:");
scanf("%[^\n]",str);
int ret = -1;
ret = wordcount(str);
printf("word in str:%d\n",ret);
return 0;
}
使用指針和二級(jí)指針對(duì)數(shù)組進(jìn)行單詞翻轉(zhuǎn)的函數(shù)
#include <stdio.h>
#include <string.h>
void swap(char **h,char **t){
while(*t > *h){
**t ^= **h;
**h ^= **t;
**t ^= **h;
(*h)++;
(*t)--;
}
}
void strchange(char *str){
char *head;
char *tail;
head = str;
tail = str + strlen(str)-1;
swap(&head,&tail);
tail = str;
head = str;
char *temp;
while(1){
while(*tail != ' ' && *tail)
tail++;
temp = (--tail);
swap(&head,&tail);
if(*(tail+1)=='\0') break;
head = temp+2;
tail = temp+2;
}
}
int main(int argc, const char *argv[])
{
char str[100]={0};
printf("please input a str:");
scanf("%[^\n]",str);
strchange(str);
printf("str revese:%s\n",str);
return 0;
}
?
轉(zhuǎn)載于:https://www.cnblogs.com/huiji12321/p/11135006.html
總結(jié)
以上是生活随笔為你收集整理的step1 . day8 C语言基础练习之指针和函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Thrift IDL基本语法
- 下一篇: 交换机端口模式