Here's my code. I just want to return the length of a string. How do I do that? Any assistance would be greatly appreciated.

#include "stdafx.h"

#using <mscorlib.dll>

using namespace System;

int _tmain()
{

	String *strString;
	int intLength;

	Console::Write(S"Enter a String ");
	strString = Console::ReadLine();
	Console::Write(strString);
	intLength = strlen(strString);
	Console::Write(intLength);

	return 0;
}

I run this and get a slew of "Cannot convert..." errors.

Recommended Answers

All 9 Replies

Can't you include string.h ? Use stdlib.h sizeof() and then search for '\0' (string end symb). You can make it even simplier by memsetting your string to some char (for example '\n') and then testing for that..
Ilya
P.S.: (You can later convert all the free mem to '\0' so that your print keeps clean)
P.P.S.: If all else fails instead of char symb. use hexidecimals (the true form of special chars)

Here's my code. I just want to return the length of a string. How do I do that? Any assistance would be greatly appreciated.

#include "stdafx.h"

#using <mscorlib.dll>

using namespace System;

int _tmain()
{

String *strString;
int intLength;

Console::Write(S"Enter a String ");
strString = Console::ReadLine();
Console::Write(strString);
intLength = strlen(strString);
Console::Write(intLength);

return 0;
}

I run this and get a slew of "Cannot convert..." errors.

Although I must say your problem is strange...

When I use sizeof(strString) I get an error that says "Cannot apply sizeof to managed type 'System::String'."

ok..
here is something i didn't test:

int strings(char *string)
{
int size=0;
for (;string[size]!='\0'; size++)
continue;
return size;
}

ok.. I tested it and to my suprise (my stuf ususally doesn't work from the first try) it actually worked.. so I hope you won't have problems with it.
Ilyaa :)

*ilya

Your problem might be that strlen returns size_t or smthn so and you are using int.. although I always thought that size_t was made by "typedef size_t int;"
Ilya

Doesn't look like C++ to me, is it C#?

How bout' something like this:

int length(char *string) {
 int blah = 0;
 char *pointer = string;
 while (*pointer++!=NULL) blah++;
 return blah;
}

Theoretically, that should give you the length of a string. Might not work since I thought it up right now.

When I use sizeof(strString) I get an error that says "Cannot apply sizeof to managed type 'System::String'."

I didn't know there was a system class. I r teh n00b.

Apparently, that class doesn't like you using 'sizeof()' on it, so you're just going to have to manually find it's size.

#using <mscorlib.dll>

You are using C/C++, right? If so, I didn't know you could do that.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.