69,371
社区成员
发帖
与我相关
我的任务
分享
int find(char *p, char ch)
{
char *tmp = p;
while (tmp) {
if (*tmp == ch)
return tmp - p;
tmp++;
}
return -1;
/*
char *pd=p;
int i=0;
while(*p!='\0'){
if(strncmp(p,&ch,1)==0){
return i;
}
else{
p++;
i++;
}
}
*/
return -1;
}
int find(char *p, char ch)
{
char *tmp = p;
while (tmp) {
if (*tmp == ch)
return tmp - p;
tmp++;
}
return -1;
/*
char *pd=p;
int i=0;
while(*p!='\0'){
if(strncmp(p,&ch,1)==0){
return i;
}
else{
p++;
i++;
}
}
*/
return -1;
}
int find(char *p, char ch)
{
char *tmp = p;
while (*tmp) { //这个地方要用*tmp,因为用于判断'\0'
if (*tmp == ch)
return tmp - p;
tmp++;
}
return -1;
/*
char *pd=p;
int i=0;
while(*p!='\0'){
if(strncmp(p,&ch,1)==0){
return i;
}
else{
p++;
i++;
}
}
*/
return -1;
}
[/quote]
之前主函数里面getchar(ch)一直报错,谢谢啦int find(char *p, char ch)
{
char *tmp = p;
while (tmp) {
if (*tmp == ch)
return tmp - p;
tmp++;
}
return -1;
/*
char *pd=p;
int i=0;
while(*p!='\0'){
if(strncmp(p,&ch,1)==0){
return i;
}
else{
p++;
i++;
}
}
*/
return -1;
}
int find(char *p, char ch)
{
char *tmp = p;
while (*tmp) { //这个地方要用*tmp,因为用于判断'\0'
if (*tmp == ch)
return tmp - p;
tmp++;
}
return -1;
/*
char *pd=p;
int i=0;
while(*p!='\0'){
if(strncmp(p,&ch,1)==0){
return i;
}
else{
p++;
i++;
}
}
*/
return -1;
}
int find(char *p, char ch)
{
char *tmp = p;
while (tmp) {
if (*tmp == ch)
return tmp - p;
tmp++;
}
return -1;
/*
char *pd=p;
int i=0;
while(*p!='\0'){
if(strncmp(p,&ch,1)==0){
return i;
}
else{
p++;
i++;
}
}
*/
return -1;
}
int find(char *p, char ch)
{
char *tmp = p;
while (tmp) {
if (*tmp == ch)
return tmp - p;
tmp++;
}
return -1;
/*
char *pd=p;
int i=0;
while(*p!='\0'){
if(strncmp(p,&ch,1)==0){
return i;
}
else{
p++;
i++;
}
}
*/
return -1;
}
供参考~
[/quote]
改一个地方:
int find(char *p, char ch)
{
char *tmp = p;
while (*tmp) { //这个地方要用*tmp,因为用于判断'\0'
if (*tmp == ch)
return tmp - p;
tmp++;
}
return -1;
/*
char *pd=p;
int i=0;
while(*p!='\0'){
if(strncmp(p,&ch,1)==0){
return i;
}
else{
p++;
i++;
}
}
*/
return -1;
}
[/quote]
return tmp-p; 这里有些看不懂,可以解释一下吗?
[/quote]
首先建议用我的程序测试一下,如果正确再继续问,如果不对,那么就不是tmp -p的问题了。
tmp - p是tmp相对p的偏移个数。因为tmp++;每次向后偏移一个char,当出现c时,偏移tmp - p个数,就是c存在的位置。[/quote]
我试过了,没有问题,谢谢你的指点了。int find(char *p, char ch)
{
char *tmp = p;
while (tmp) {
if (*tmp == ch)
return tmp - p;
tmp++;
}
return -1;
/*
char *pd=p;
int i=0;
while(*p!='\0'){
if(strncmp(p,&ch,1)==0){
return i;
}
else{
p++;
i++;
}
}
*/
return -1;
}
int find(char *p, char ch)
{
char *tmp = p;
while (*tmp) { //这个地方要用*tmp,因为用于判断'\0'
if (*tmp == ch)
return tmp - p;
tmp++;
}
return -1;
/*
char *pd=p;
int i=0;
while(*p!='\0'){
if(strncmp(p,&ch,1)==0){
return i;
}
else{
p++;
i++;
}
}
*/
return -1;
}
[/quote]int find(char *p, char ch)
{
char *tmp = p;
while (tmp) {
if (*tmp == ch)
return tmp - p;
tmp++;
}
return -1;
/*
char *pd=p;
int i=0;
while(*p!='\0'){
if(strncmp(p,&ch,1)==0){
return i;
}
else{
p++;
i++;
}
}
*/
return -1;
}
供参考~
[/quote]
改一个地方:
int find(char *p, char ch)
{
char *tmp = p;
while (*tmp) { //这个地方要用*tmp,因为用于判断'\0'
if (*tmp == ch)
return tmp - p;
tmp++;
}
return -1;
/*
char *pd=p;
int i=0;
while(*p!='\0'){
if(strncmp(p,&ch,1)==0){
return i;
}
else{
p++;
i++;
}
}
*/
return -1;
}
[/quote]
return tmp-p; 这里有些看不懂,可以解释一下吗?