1、字符指针指向的字符串char *pchar="http://www.baidu.com";,输入字符串时,一般用
scanf("%s",pchar);
比较便捷。但是scanf("%s",str);把空格作为分隔符,故向字符指针中输入带空格的内容如"how are you ",就必须用gets(str);
对于string类型的变量的输入,一般用getline();
计算它指向的字符串的长度时,可以用strlen,遇到'\0'就结束。
2、将字符串与数字相连的好方法:
#include <iostream>
#include <string>
using namespace std;
int main()
{
char str[30] = "Hello, good morning!";
int year = 2010;
char ayear[4];
itoa(year, ayear, 10);
strcat(str, ayear);
cout<<str<<endl;
return 0;
}
也可以用sprintf(str,"%d",a);另:
#include<stdio.h>
int main(void)
{
int i,j=0,k=1;
char a[10],*s;
s=a;
printf("Please input:");
scanf("%9s",a);
if(*s=='-')
{
k=-1;
s++;
}
while(*s)
{
i=*s-'0';
j=j*10+i;
s++;
}
printf("%d\n",j*k);
return 0;
}
char *z;
z="abcd";
对于以上代码,实际上是将字符串abcd中a的地址赋给了指针z。
因为在执行z="abcd"的时候,程序首先在内存分配一个可供字符串abcd存放的内存空间,再将指针z设置为指向这段内存空间的第一个地址,也就是存放字符a的地址。
int b=5,*a=&b;
cout<<a<<endl;
以上代码,结果是0018FF44,输出的是b的地址。
而对于字符指针
char *a="abcd";
cout<<a<<endl;
输出的竟为abcd。