step1 . day8 C语言基础练习之指针和函数
今天繼續復習指針,還是很深奧的,兩點注意事項:
1. int型數據可以強制類型轉化賦值給指針變量,然后對該地址賦值(用在裸機上);
2.指針數組是數組,存放的是指針,數組指針是數組的指針,存放的是行指針。
利用數組指針對輸入數組進行單詞數目確認的函數:
#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;
}
使用指針和二級指針對數組進行單詞翻轉的函數
#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;
}
?
轉載于:https://www.cnblogs.com/huiji12321/p/11135006.html
總結
以上是生活随笔為你收集整理的step1 . day8 C语言基础练习之指针和函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Thrift IDL基本语法
- 下一篇: 交换机端口模式