Solved

pass pointer to char and should return pointer char of corresponding ASCII values

Posted on 2004-03-21
9
190 Views
Last Modified: 2010-04-15
Hi all,
   Its my first quesion, which was asked for me in interview.
write function which talks pointer to char and returns pointer to char of ASCII values of corresponding char. For example, if i pass string "abcde" to function , it should return pointer to string "6162636465", (that is a=65,b=62,.....). Plz help me,
0
Comment
Question by:maheshptl
9 Comments
 
LVL 9

Expert Comment

by:ankuratvb
Comment Utility
>For example, if i pass string "abcde" to function , it should return pointer to string "6162636465", (that is >a=65,b=62,.....).

for "abcde",O/P should be "6566676869"

That's pretty simple.
cast each character into an integer,use itoa() to make it into a string and use strcat() to append it to ur final string.
Then return the address of this char array(string).
0
 
LVL 9

Expert Comment

by:ankuratvb
Comment Utility
Do u actually want code for this,or u just looking for an explanation to the answer.

This is quite simple and i am actually surprised that this could be asked at an interview,
May i dare ask,which company??
0
 
LVL 9

Expert Comment

by:ankuratvb
Comment Utility
BTW,

"ABCDE" should return "6566676869"

"abcde" would return "979899100101"

0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
LVL 9

Expert Comment

by:ankuratvb
Comment Utility
Here is the code:

#include<string.h>
char * func(char*);
int main()
{
 char *ptr="ABCDE";
 char *p;
 p=func(ptr);
 printf("%s",p);
}
char * func(char *s)
{
 char str[100];//declare to any large size
 char temp[5];//enough for string version for ASCII of 1 character
 int i;
 strcpy(str,"");
 while(*s!='\0')
 {
  i=*s;
  itoa(i,temp,10);
  strcat(str,temp);
  s++;
 }
 return str;
}
0
 
LVL 84

Expert Comment

by:ozo
Comment Utility
char * func(char *s){
    char *str=malloc(2*strlen(s)+1);
    int i;
    for( i=0;s[i]; i+=1 ){
        sprintf(&str[2*i],"%02x",s[i]);  
    }
    return str;
}
0
 
LVL 12

Accepted Solution

by:
stefan73 earned 40 total points
Comment Utility
Hi ozo,
> sprintf(&str[2*i],"%02x",s[i]);  
Should be decimal - then you'd also have the issue of 2 or 3 chars:

char * func(char *s){
    char *str=malloc(3*strlen(s)+1);
    int i;
    str[0]='\0';
    for( i=0;s[i]; i+=1 ){
        sprintf(&str[strlen(str)],"%d",s[i]);  
    }
    return str;
}


Cheers,

Stefan
0
 
LVL 45

Expert Comment

by:Kdo
Comment Utility

These "interview questions" always leave me scratching my head....  They don't provide a operational purpose and I'm not convinced of their "evalutation" value.

Taking the above mentioned examples another step:

char * func(char *s)
{
    char *ptr;
    char *str=malloc(3*strlen(s)+1);

    ptr = str;
    while (*s)
    {
      sprintf (ptr, %d,*(s++));
      ptr+=2;
    }
    *ptr = 0;
    return str;
}
0

Featured Post

Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

This tutorial is posted by Aaron Wojnowski, administrator at SDKExpert.net.  To view more iPhone tutorials, visit www.sdkexpert.net. This is a very simple tutorial on finding the user's current location easily. In this tutorial, you will learn ho…
This is a short and sweet, but (hopefully) to the point article. There seems to be some fundamental misunderstanding about the function prototype for the "main" function in C and C++, more specifically what type this function should return. I see so…
Video by: Grant
The goal of this video is to provide viewers with basic examples to understand and use nested-loops in the C programming language.
The goal of this video is to provide viewers with basic examples to understand opening and reading files in the C programming language.

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now