字符串中的字母变成大写:
#include <stdio.h>
void uppercase(char *str){
char* str_temp=str;
while(*str_temp!='\0'){
if((*str_temp>='a')&&(*str_temp<='z'))
*str_temp-=('a'-'A');
str_temp++;
}
}
int main(){
//char *str1="aBcDeF";// str1 is const string,its element can't be modified.
char str1[]="aBcDeF";
uppercase(str1);
printf("%s \n",str1);
printf("a=%d, A=%d\n",'a','A');
return 0;
}
字符串的拷贝:
#include <stdio.h>
char * strcpy_str (char *strDest,const char *strSrc)
{
// assert((strDest!=NULL)&&(strSrc!=NULL));
char *strDestCopy=strDest;
while ((*strDest++=*strSrc++)!='\0');
/***此时的strDest指向一个字符,并不是指向strDest字符串,strDestCopy事先先记住了原strDest的便于返回****这个我现在才明白/
return strDestCopy;
}
void main()
{
char *str=NULL;
char strdest[]="abcdsss";
str=strcpy_str(strdest,"hello");
printf("%s \n",str);
}
整型变量的传值:
#include <iostream>
using namespace std;
void GetMemory(int *z)
{
*z=5;
}
int main()
{
int v;
GetMemory(&v);
cout<<v<<endl;
return 0;
}
把v的地址传进去,*z是地址里的值,是v的副本。通过修改地址里的值,不需要有返回值也把v‘给修改了,因为v所指向的地址发生了变化。